IP Library Granted Patent US 9,854,063
Granted Patent B2
US 9,854,063 · App. 14/733,490 · Granted Dec 26, 2017

Enterprise application store for an orchestration framework for connected devices

Inventors: Andrew Borzycki (Killara, AU); Mallikharjuna Reddy Deva (Sydney, AU); Uday Nandigam Gajendar (Menlo Park, CA); Anil Roychoudhry (Woodcroft, AU)
Assignee: Citrix Systems, Inc.
H04L67/327G06F9/543G06F21/41G06F21/53G06F21/6218H04L1/0025H04L9/14H04L63/04H04L63/0815H04L63/10H04L67/04H04L67/10H04L67/104H04L67/2838H04L67/32H04L67/34G06F2221/2149H04L12/2856
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 9,854,063
App. No.
14/733,490
Granted
Dec 26, 2017
Kind
B2
Abstract

Aspects described herein allow multiple devices to function as a coherent whole, allowing each device to take on distinct functions that are complementary to one another. Aspects described herein also allow the devices function as a coherent whole when interconnected devices and their respective applications are configured to operate in various operation modes, when management policies are employed to control the operation of the interconnected devices and their respective applications, when transferring content between the interconnected devices and storing the content at those devices, when obtaining access credentials for the interconnected devices that enable the devices to access enterprise resources, when a policy agent applies management policies to control operation of and interaction between the interconnected devices, and when the interconnected devices are used to access an enterprise application store.

Claims (59)

1. A method comprising:

interconnecting, by an orchestration framework operating at a computing device, a plurality of computing devices comprising a first computing device and a second computing device;

receiving, at the orchestration framework from the first computing device, a message indicating that the second computing device has been selected at the first computing device to perform a computing activity;

determining, by the orchestration framework, which application of a plurality of applications stored at an application store is configured to provide instructions that, when executed by the second computing device, cause the second computing device to perform the computing activity;

selecting, by the orchestration framework, the application determined from among the plurality of applications;

instructing, by the orchestration framework, the application store to transmit to the second computing device the application selected; and

instructing, by the orchestration framework, the second computing device to perform the computing activity using the application.

2. The method of claim 1 , wherein:

the application store, before transmitting the application to the second computing device, configures the application to be subject to a management policy, the management policy being enforced at the second computing device when the second computing device performs the computing activity with the application.

3. The method of claim 1 , wherein:

the orchestration framework selects the application to transmit to the second computing device based on one or more of i) a type of input associated with the computing activity, or ii) a type of output associated with the computing activity.

4. The method of claim 3 , wherein:

the type of output associated with the computing activity comprises at least one of audio output and video output; and

the instructions provided by the application comprise instructions for outputting at least one of audio and video.

5. The method of claim 3 , wherein:

the type of input associated with the computing activity comprises user input received at an input device of the second computing device; and

the instructions provided by the application comprise instructions for receiving the user input from the input device when the application is executing at the second computing device.

6. The method of claim 1 , further comprising:

querying, by the orchestration framework, the application store for identification of one or more applications of the plurality of applications that are configured to provide the instructions for performing the computing activity;

wherein the orchestration framework selects the application to transmit to the second computing device from among the one or more applications identified.

7. The method of claim 1 , wherein:

the application transmitted to the second computing device is a client agent configured to provide, at the second computing device, access to a virtual application executing at a remote computing device and configured to provide instructions that, when executed by the remote computing device, cause the remote computing device to perform the computing activity.

8. The method of claim 1 , further comprising:

receiving, at the orchestration framework from the first computing device, an indication of the application to transmit to the second computing device.

9. The method of claim 1 , further comprising:

instructing, by the orchestration framework, the second computing device to, upon completing the computing activity, delete the application.

10. An apparatus comprising:

one or more processors;

a data store identifying a plurality of computing devices that are interconnected with one another, the plurality of computing devices comprising a first computing device and a second computing device; and

memory storing instructions that, when executed by one of the processors, cause the apparatus to:

provide an orchestration framework that interconnects the plurality of computing devices,

receive, at the orchestration framework from the first computing device, a message indicating that the second computing device has been selected at the first computing device to perform a computing activity,

determining, by the orchestration framework, which application of a plurality of applications stored at an application store is configured to provide instructions that, when executed by the second computing device, cause the second computing device to perform the computing activity,

selecting, by the orchestration framework, the application determined from among the plurality of applications,

instruct, using the orchestration framework, the application store to transmit to the second computing device the application selected, and

instruct, using the orchestration framework, the second computing device to perform the computing activity using the application.

11. The apparatus of claim 10 , wherein:

the application store, before transmitting the application to the second computing device, configures the application to be subject to a management policy, the management policy being enforced at the second computing device when the second computing device performs the computing activity with the application.

12. The apparatus of claim 10 , wherein:

the application transmitted to the second computing device is selected based on one or more of i) a type of input associated with the computing activity, or ii) a type of output associated with the computing activity.

13. The apparatus of claim 10 , wherein:

the instructions, when executed by one of the processors, further cause the apparatus to query, using the orchestration framework, the application store for identification of one or more applications of the plurality of applications that are configured to provide the instructions for performing the computing activity;

wherein the application transmitted to the second computing device is selected from among the one or more applications identified.

14. The apparatus of claim 10 , wherein:

the application transmitted to the second computing device is a client agent configured to provide, at the second computing device, access to a virtual application executing at a remote computing device and configured to provide instructions that, when executed by the remote computing device, cause the remote computing device to perform the computing activity.

15. The apparatus of claim 10 , wherein:

the instructions, when executed by one of the processors, further cause the apparatus to receive, at the orchestration framework from the first computing device, an indication of the application to transmit to the second computing device.

16. The apparatus of claim 10 , wherein:

the instructions, when executed by one of the processors, further cause the apparatus to instruct, using the orchestration framework, the second computing device to, upon completion of the computing activity, delete the application.

17. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processor of a computing device, cause the computing device to:

provide an orchestration framework that interconnects a plurality of computing devices comprising a first computing device and a second computing device;

receive, at the orchestration framework from the first computing device, a message indicating that the second computing device has been selected at the first computing device to perform a computing activity;

determining, by the orchestration framework, which application of a plurality of applications stored at an application store is configured to provide instructions that, when executed by the second computing device, cause the second computing device to perform the computing activity;

selecting, by the orchestration framework, the application determined from among the plurality of applications;

instruct, using the orchestration framework, the application store to transmit to the second computing device the application selected; and

instruct, using the orchestration framework, the second computing device to perform the computing activity using the application.

18. The computer-readable storage medium of claim 17 , wherein the instructions, when executed by the processor, further cause the computing device to:

instruct, using the orchestration framework, the second computing device to, upon completion of the computing activity, delete the application; and

wherein the application store, before transmitting the application to the second computing device, configures the application to be subject to a management policy that is enforced when the second computing device performs the computing activity.

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 Jun 8, 2015
From: BORZYCKI, ANDREW; DEVA, MALLIKHARJUNA REDDY; GAJENDAR, UDAY NANDIGAM; ROYCHOUDHRY, ANIL
To: CITRIX SYSTEMS, INC.
Reel/Frame 035804/0441 →
Continuity (14)
Continuation 13963851 · Aug 9, 2013
Provisional Application 61861199 · Aug 1, 2013
Provisional Application 61824204 · May 16, 2013
Provisional Application 61806577 · Mar 29, 2013
Provisional Application 61714469 · Oct 16, 2012
Provisional Application 61712948 · Oct 12, 2012
Provisional Application 61712953 · Oct 12, 2012
Provisional Application 61712956 · Oct 12, 2012
Provisional Application 61712962 · Oct 12, 2012
Provisional Application 61713718 · Oct 15, 2012
Provisional Application 61713715 · Oct 15, 2012
Provisional Application 61713762 · Oct 15, 2012
Provisional Application 61714293 · Oct 16, 2012
Related Publication 20150271296A1 · Sep 24, 2015