IP Library › Granted Patent US 10,222,926
Granted Patent B2
US 10,222,926 · App. 13/828,518 · Granted Mar 5, 2019

Systems and methods for providing user interfaces for management applications

Inventors: Mohan Kumar Pandian (Bangalore, IN); Rahul Kurpad (Bangalore, IN); Vijay Venkatachalam (Bangalore, IN); Sanjay Gupta (Bangalore, IN); Sovit Garg (Bangalore, IN)
Assignee: Citrix Systems, Inc.
G06F3/0481G06F9/54H04L41/22H04L67/025H04L67/2842H04L67/2852H04L41/0253H04L63/0272H04L63/0485H04L63/166
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,222,926
App. No.
13/828,518
Filed
Mar 14, 2013
Granted
Mar 5, 2019
Kind
B2
Examiner
AUNG, AYE M
Art Unit
2452
USPC
709/204
Abstract

The present application is directed towards systems and methods for providing user interfaces for management applications via a definition-based graphical user interface (GUI) framework for developing web based management applications for servers, intermediaries, routers, wide area network (WAN) accelerators, caches, switches, or any other type and form of computing device. The plug-in free framework reduces the server's resource consumption and bandwidth by making a full use of resources available on the client computing device or browser. A complete web application can be developed using JavaScript Object Notation (JSON) definitions along with a representational state transfer (REST) based application programming interface (API) efficiently using the framework, which may comprise light-weight pure JavaScript or similar executable code. In many embodiments, the framework may be layered in a model-view-controller (MVC) architecture easing resource consumption, maintenance and extensibility.

Claims (27)

1. A method for providing a definition-based graphical user interface (GUI) framework, comprising:

(a) transmitting, by a first computing device to a second computing device, a definition-based graphical user interface (GUI) framework comprising one or more files of definitions including an object definition identifying at least one object stored on the first computing device, view definitions identifying the at least one object and specifying a plurality of views defining predetermined displays of how to render the at least one object and operations allowed on the at least one object, and at least one navigation definition specifying a navigation element for selecting a view and a definition providing a communication layer the one or more files of the definition-based GUI framework executed natively, without a plug-in, by a web browser of the second computing device to provide a GUI displaying a first view of the plurality of views and the navigation element;

(b) receiving, by the first computing device from the second computing device via the communication layer defined by the definition of the one or more files of definitions and executed according to instructions provided by the definition, a stateless request for data for the at least one object, wherein the communication layer converts between the at least one object defined in the one or more files of definition and the data of a stateless request; and

(c) transmitting, by the first computing device to the second computing device, responsive to the stateless request, data for the at least one object for display in the first view of the plurality of views according to the definitions.

2. The method of claim 1 , wherein each definition for the at least one object comprises identifications of a name of the object, a type of the object, an address of the object, and a property of the object.

3. The method of claim 1 , wherein each definition for the plurality of views comprises identifications of a first object of the at least one objects, an identification of one or more properties of the first object, and an identification of one or more operations that may be performed on the first object.

4. The method of claim 1 , wherein transmitting data for display in the first view of the plurality of views further comprises transmitting data for caching and display in a second view of the plurality of views, responsive to a selection by a user of the second device of the navigation element.

5. The method of claim 1 , wherein transmitting the definition-based GUI framework further comprises transmitting instructions for natively executing, by the web browser of the second computing device, an asynchronous communication layer for intercepting requests generated responsive to selections by a user of an object of the at least one objects.

6. The method of claim 5 , wherein the instructions for natively executing an asynchronous communication layer further include instructions for identifying that a plurality of requests are for duplicate data, and transmitting a single stateless request for said data.

7. The method of claim 5 , wherein the instructions for natively executing an asynchronous communication layer further include instructions for intercepting a plurality of simultaneous requests; transmitting a first subset of the simultaneous requests, the first subset having a size according to predetermined limit of parallel data requests; and buffering the remainder of the plurality of simultaneous requests.

8. The method of claim 1 , further comprising repeating, by the first computing device, steps (a) through (c) for a third computing device, wherein the web browser of the third computing device is of a different type than the web browser of the second computing device, and the definitions are agnostic to the browser.

9. The method of claim 1 , wherein execution of the definition-based GUI framework does not require installation of a browser plug-in.

10. The method of claim 1 , wherein the first computing device comprises an intermediary device between the second computing device and a plurality of servers, and wherein the at least one object comprises an operational statistic of at least one of the plurality of servers.

11. A system for providing a definition-based graphical user interface (GUI) framework, comprising:

a first computing device comprising a processor executing a web server configured for:

(a) transmitting, to the second computing device, a definition-based graphical user interface (GUI) framework comprising one or more files of definitions including an object definition identifying at least one object stored on the first computing device, view definitions identifying the at least one object and specifying a plurality of views defining predetermined displays of how to render the at least one object and operations allowed on the at least one object, and at least one navigation definition specifying a navigation element for selecting a view and a definition providing a communication layer, the one or more files of the definition-based GUI framework executed natively, without a plug-in, by a web browser of the second computing device to provide a GUI displaying a first view of the plurality of views and the navigation element;

(b) receiving, from the second computing device via the communication layer defined by the definition of the one or more files of definitions and executed according to instructions provided by the definition, a stateless request for data for the at least one object, wherein the communication layer converts between the at least one object defined in the one or more files of definitions and the data of a stateless request; and

(c) transmitting, to the second computing device, responsive to the stateless request, data for display in the first view of the plurality of views according to the framework definitions.

12. The system of claim 11 , wherein each definition for the at least one object comprises identifications of a name of the object, a type of the object, an address of the object, and a property of the object.

13. The system of claim 11 , wherein each definition for the plurality of views comprises identifications of a first object of the at least one objects, an identification of one or more properties of the first object, and an identification of one or more operations that may be performed on the first object.

14. The system of claim 11 , wherein the web server is further configured for transmitting data for caching and display in a second view of the plurality of views, responsive to a selection by a user of the second device of the navigation element.

15. The system of claim 11 , wherein the web server is further configured for transmitting instructions for natively executing, by the web browser of the second computing device, an asynchronous communication layer for intercepting requests generated responsive to selections by a user of an object of the at least one objects.

16. The system of claim 15 , wherein the instructions for natively executing an asynchronous communication layer further include instructions for identifying that a plurality of requests are for duplicate data, and transmitting a single stateless request for said data.

17. The system of claim 15 , wherein the instructions for natively executing an asynchronous communication layer further include instructions for intercepting a plurality of simultaneous requests; transmitting a first subset of the simultaneous requests, the first subset having a size according to predetermined limit of parallel data requests; and buffering the remainder of the plurality of simultaneous requests.

18. The system of claim 11 , wherein the web server is further configured for repeating steps (a) through (c) for a third computing device, wherein the web browser of the third computing device is of a different type than the web browser of the second computing device, and the definitions are agnostic to the browser.

19. The system of claim 11 , wherein execution of the definition-based GUI framework does not require installation of a browser plug-in.

20. The system of claim 11 , wherein the first computing device is deployed as an intermediary device between the second computing device and a plurality of servers, and wherein the at least one object comprises an operational statistic of at least one of the plurality of servers.

Assignments (10)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 1ST CONVEYING PARTY NAME PREVIOUSLY RECORDED AT REEL: 030278 FRAME: 0759. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 10, 2019
From: PANDIAN, MOHAN KUMAR; KURPAD, RAHUL; VENKATACHALAM, VIJAY; GUPTA, SANJAY; GARG, SOVIT
To: CITRIX SYSTEMS, INC.
Reel/Frame 048043/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2013
From: PANDIYAN, MOHAN KUMAR; KURPAD, RAHUL; VENKATACHALAM, VIJAY; GUPTA, SANJAY; GARG, SOVIT
To: CITRIX SYSTEMS, INC.
Reel/Frame 030278/0759 →
Continuity (2)
Provisional Application 61612825 · Mar 19, 2012
Related Publication 20130246944A1 · Sep 19, 2013
Cited By (2)
US 12,314,779 US 12,493,453