IP Library › Granted Patent US 9,392,077
Granted Patent B2
US 9,392,077 · App. 13/963,739 · Granted Jul 12, 2016

Coordinating a computing activity across applications and devices having multiple operation modes in 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/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,392,077
App. No.
13/963,739
Granted
Jul 12, 2016
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 (63)

1. A method comprising:

interconnecting a plurality of computing devices through an orchestration framework configured to distribute functionality of an application residing at a first computing device of the plurality of computing devices across one or more computing devices of the plurality of computing devices;

receiving, at the orchestration framework from the first computing device, a request to perform, at a second computing device of the plurality of computing devices, at least a portion of a computing activity initiated at the application residing at the first computing device;

determining, by the orchestration framework, whether the second computing device is permitted to perform the portion of the computing activity based, at least in part, on a comparison of a first operation mode of the first computing device to a second operation mode of the second computing device;

instructing, by the orchestration framework, the second computing device to perform the portion of the computing activity responsive to a determination that the second computing device is permitted to perform the portion of the computing activity; and

wherein the first operation mode and the second operation mode are one of a plurality of operation modes that include a managed operation mode wherein interaction with operation system services, other applications, and remote computing resources are subject to a management policy and an unmanaged operation mode wherein interaction with operation system services, other applications, and remote computing resources are not subject to the management policy.

2. The method of claim 1 further comprising:

determining, by the orchestration framework, that the first operation mode is the unmanaged operation mode and that the second operation mode is the managed operation mode; and

instructing, by the orchestration framework, the second computing device to perform the portion of the computing activity initiated at the application residing at the first computing device.

3. The method of claim 1 further comprising:

determining, by the orchestration framework, that the first operation mode is the managed operation mode and that the second operation mode is the unmanaged operation mode;

instructing, by the orchestration framework, the second computing device to change the second operation mode to the managed operation mode; and

instructing, by the orchestration framework, the second computing device to perform the portion of the computing activity after the second operation mode is changed to the managed operation mode.

4. The method of claim 3 further comprising:

identifying a second application residing at the second computing device that is capable of performing the portion of the computing activity;

determining that the second application is in the unmanaged operation mode;

instructing, by the orchestration framework, the second computing device to change the second application to the managed operation mode; and

instructing, by the orchestration framework, the second computing device to perform the portion of the computing activity using the second application after the second application is changed to the managed operation mode.

5. The method of claim 1 wherein the portion of the computing activity performed at the second computing device includes presentation of content associated with the computing activity.

6. The method of claim 1 wherein the portion of the computing activity performed at the second computing device includes receipt of input associated with the computing activity.

7. An apparatus comprising:

one or more processors;

memory storing computer-readable instructions that, when executed by at least one of the processors, cause the apparatus to

interconnect a plurality of computing devices through an orchestration framework configured to distribute functionality of an application residing at a first computing device of the plurality of computing devices across one or more computing devices of the plurality of computing devices,

receive, at the orchestration framework from the first computing device, a request to perform, at a second computing device of the plurality of computing devices, at least a portion of a computing activity initiated at the application residing at the first computing device,

determine, by the orchestration framework, whether the second computing device is permitted to perform the portion of the computing activity based, at least in part, on a comparison of a first operation mode of the first computing device to a second operation mode of the second computing device, and

instruct, by the orchestration framework, the second computing device to perform the portion of the computing activity responsive to a determination that the second computing device is permitted to perform the portion of the computing activity; and

wherein the first operation mode and the second operation mode are one of a plurality of operation modes that include a managed operation mode wherein interaction with operation system services, other applications, and remote computing resources are subject to a management policy and an unmanaged operation mode wherein interaction with operation system services, other applications, and remote computing resources are not subject to a management policy.

8. The apparatus of claim 7 wherein the instructions, when executed by the at least one processor, further cause the apparatus to:

determine, by the orchestration framework, that the first operation mode of the first computing device is the managed operation mode;

determine, by the orchestration framework, that the second operation mode of the second computing device is the unmanaged operation mode; and

instruct, by the orchestration framework, the second computing device to change the second operation mode to the managed operation mode before performing the portion of the computing activity.

9. The apparatus of claim 7 wherein:

determining whether the second computing device is permitted to perform the portion of the computing activity comprises applying a management policy that indicates when performance is permitted based on the plurality of operation modes.

10. The apparatus of claim 9 wherein:

the management policy is configured such that

the second computing device is permitted to perform the portion of the computing activity when the first operation mode of the first computing device is the same as the second operation mode of the second computing device,

the second computing device is permitted to perform the portion of the computing activity when the first operation mode of the first computing device is the unmanaged operation mode and the second operation mode of the second computing device is the managed operation mode and

the second computing device is not permitted to perform the portion of the computing activity when the first operation mode of the first computing device is the managed operation mode and the second operation mode of the second computing device is the unmanaged operation mode.

11. The apparatus of claim 7 wherein the portion of the computing activity performed at the second computing device includes at least one of a presentation of content associated with the computing activity, a receipt of input associated with the computing activity, and combinations thereof.

12. One or more non-transitory computer-readable media storing instructions that, when executed, cause a computing device to:

connect to one or more computing devices through an orchestration framework configured to distribute functionality of an application residing at the computing device across one or more of the one or more computing devices;

initiate a computing activity at the application;

receive an indication of a selected computing device to perform at least a portion of the computing activity;

display a list of computing devices available for selection as the selected computing device wherein the list of computing devices is based on an operation mode of the computing device and the operation mode is one of a plurality of operation modes that include a managed operation mode wherein interaction with operation system services, other applications, and remote computing resources are subject to a management policy and an unmanaged operation mode wherein interaction with operation system services, other applications, and remote computing resources are not subject to a management policy; and

transmit, to the orchestration framework, a request to instruct the selected computing device to perform the portion of the computing activity.

13. The computer-readable media of claim 12 wherein:

the list of computing devices includes at least one selectable computing device having an operation mode that is the same as the operation mode of the computing device; and

the list of computing devices excludes any computing device having an operation mode that is not the same as the operation mode of the computing device.

14. The computer-readable media of claim 12 wherein:

the operation mode of the computing device is the managed operation mode; and

the list of computing devices includes at least one selectable computing device having an operation mode that is the managed operation mode.

15. The computer-readable media of claim 12 wherein:

the operation mode of the computing device is the unmanaged operation mode; and

the list of computing devices includes at least one selectable computing device having an operation mode that is the managed operation mode or the unmanaged operation mode.

16. The computer-readable media of claim 12 wherein the instructions, when executed, further cause the computing device to:

launch a second application responsive to receipt, from the orchestration framework, of an instruction that indicates a desired operation mode for the second application;

set an operation mode of the second application to the desired operation mode; and

transmit, to the orchestration framework, a notification that indicates the second application has been launched with the desired operation mode.

17. The computer-readable media of claim 16 wherein the instructions, when executed, further cause the computing device to:

perform at least a portion of another computing activity initiated at another computing device of the one or more computing devices using the second application; and

wherein the portion of the other computing activity performed by the second application includes at least one of a presentation of content associated with the computing activity, a receipt of input associated with the computing activity, and combinations thereof.

18. The computer-readable media of claim 12 wherein the orchestration framework is configured to interconnect the computing device and the one or more computing devices via at least one of a client-server communication session, a peer-to-peer communication session, and combinations thereof.

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 Aug 12, 2013
From: BORZYCKI, ANDREW; DEVA, MALLIKHARJUNA REDDY; GAJENDAR, UDAY NANDIGAM; ROYCHOUDHRY, ANIL
To: CITRIX SYSTEMS, INC.
Reel/Frame 030991/0716 →
Continuity (13)
Provisional Application 61861199 · Aug 1, 2013
Provisional Application 61712956 · Oct 12, 2012
Provisional Application 61712962 · Oct 12, 2012
Provisional Application 61824204 · May 16, 2013
Provisional Application 61713718 · Oct 15, 2012
Provisional Application 61806577 · Mar 29, 2013
Provisional Application 61713715 · Oct 15, 2012
Provisional Application 61713762 · Oct 15, 2012
Provisional Application 61714469 · Oct 16, 2012
Provisional Application 61714293 · Oct 16, 2012
Provisional Application 61712948 · Oct 12, 2012
Provisional Application 61712953 · Oct 12, 2012
Related Publication 20140108538A1 · Apr 17, 2014