IP Library Granted Patent US 9,916,227
Granted Patent B2
US 9,916,227 · App. 14/704,740 · Granted Mar 13, 2018

Systems and methods for analyzing software compatibility

Inventors: Sheldon Ferdinand Lachambre (London, GB); David Greggory Thornley (Algonquin, IL); Todd Joseph Rosenthal (Menlo Park, CA); Tienfeng Chang (Tainan, TW)
Assignee: Citrix Systems, Inc.
G06F11/3672G06F11/3612G06F11/3664G06F11/3668
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,916,227
App. No.
14/704,740
Granted
Mar 13, 2018
Kind
B2
Abstract

Computer-implemented systems, methods, and computer-readable media are provided for facilitating analysis of a software application to determine its compatibility with one or more computer platforms. In accordance with some embodiments, a processor may receive, via an operator interface, a selection of an application and a user identity, and the processor may determine compatibility status between the application and at least one computing platform of a device associated with the user identity, and generate a report with the compatibility results.

Claims (87)

1. A computer-implemented system for analyzing software compatibility, comprising: a memory device configured to store instructions; and

one or more processors configured to execute the instructions to:

receive a selection of an application from one or more applications presented in an operator interface;

receive a selection of a user identity from a plurality of user identities in the operator interface;

identify a computing platform implemented on a device associated with the selected user identity;

determine whether the selected application is compatible with the computing platform;

provide a compatibility indicator for display in the operator interface based on the determination and to indicate that the selected application is not compatible with the computing platform;

receive an indication that the compatibility indicator has been selected; and

provide for display a reason that the selected application and the computing platform are not compatible.

2. The system of claim 1 , wherein the compatibility indicator indicates that the application is not compatible with the computing platform, and the one or more processors further execute the instructions to:

present, in the operator interface, one or more of:

the reason that the application and the computing platform are not compatible; and

a solution for making the application and the computing platform compatible.

3. The system of claim 1 , wherein the compatibility indicator indicates that the application is compatible with the computing platform.

4. The system of claim 1 , wherein the device is associated with a first user, the user identity is associated with the first user, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, and the one or more processors further execute the instructions to:

receive an indication that a second user identity has been selected from the listing of user identities presented in the operator interface;

identify a second computing platform implemented on a device associated with the second user identity;

determine whether the application is compatible with the second computing platform;

and provide a second compatibility indicator for display in the operator interface based on the

determination of whether the application is compatible with the second computing platform.

5. The system of claim 1 , wherein the device associated with a first user, the user identity is included in a user group of which the first user is a member, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, and the one or more processors further execute the instructions to:

identify a second computing platform implemented on a device associated with a second user within the user group;

determine whether the application is compatible with the second computing platform;

and provide a second compatibility indicator for display in the operator interface based on the

determination of whether the application is compatible with the second computing platform.

6. The system of claim 1 , wherein the user identity is an identity included in a first user group of which the user is a member, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, and the one or more processors further execute the instructions to:

receive an indication that a second user group has been selected from the listing of user identities presented in the operator interface;

identify a second computing platform implemented on a device of a user within the second user group;

determine whether the application is compatible with the second computing platform;

and provide a second compatibility indicator for display in the operator interface based on the

determination of whether the application is compatible with the second computing platform.

7. The system of claim 3 , wherein the one or more processors further execute the instructions to receive an indication of a selection to test the application in a virtual environment that emulates the computing platform.

8. The system of claim 1 , wherein the one or more processors further execute the instructions to:

organize a plurality of data points associated with the application into a plurality of elements;

compare the plurality of elements with a plurality of elements associated with one or more applications that have already been analyzed for compatibility with the computing platform; and

identify whether the application is compatible with the computing platform based on the comparison.

9. A computer-implemented method for analyzing software compatibility, the method performed by one or more processors and comprising:

receiving an indication of a selection of an application from one or more applications presented in an operator interface;

receiving a selection of a user identity from a plurality of user identities presented in the operator interface;

identifying a computing platform implemented on a device associated with the selected user identity; determining whether the selected application is compatible with the computing platform;

providing a compatibility indicator for display in the operator interface based on the determination and to indicate that the selected application is not compatible with the computing platform;

receiving an indication that the compatibility indicator has been selected; and

providing for display a reason that the selected application and the computing platform are not compatible.

10. The method of claim 9 , wherein the compatibility indicator indicates that the application is not compatible with the computing platform, further comprising:

presenting, in the operator interface, one or more of:

a reason that the application and the computing platform are not compatible; and a solution for making the application and the computing platform compatible.

11. The method of claim 9 , wherein the compatibility indicator indicates that the application is compatible with the computing platform.

12. The method of claim 9 , wherein the device is associated with a first user, the user identity is associated with the first user, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, further comprising:

receiving an indication that a second user identity has been selected from the listing of user identities presented in the operator interface;

identifying a second computing platform implemented on a device associated with the second user identity;

determining whether the application is compatible with the second computing platform; and

providing a second compatibility indicator for display in the operator interface based on the determination of whether the application is compatible with the second computing platform.

13. The method of claim 9 , wherein the device associated with a first user, the user identity is included in a user group of which the first user is a member, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, further comprising:

identifying a second computing platform implemented on a device associated with a second user within the user group;

determining whether the application is compatible with the second computing platform; and

providing a second compatibility indicator for display in the operator interface based on the determination of whether the application is compatible with the second computing platform.

14. The method of claim 9 , wherein the user identity is an identity included in a first user group of which the user is a member, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, further comprising:

receiving an indication that the second user group has been selected from the listing of user identities presented in the operator interface;

identifying a second computing platform implemented on a device of a user within the second user group;

determining whether the application is compatible with the second computing platform; and

providing a second compatibility indicator for display in the operator interface based on the determination of whether the application is compatible with the second computing platform.

15. The method of claim 11 , further comprising receiving an indication of a selection to test the application in a virtual environment that emulates the computing platform.

16. The method of claim 9 , wherein determining whether the application is compatible with the computing platform further comprises:

organizing a plurality of data points associated with the application into a plurality of elements;

comparing the plurality of elements with a plurality of elements associated with one or more applications that have already been analyzed for compatibility with the computing platform; and

identifying whether the application is compatible with the computing platform based on the comparison.

17. A non-transitory computer-readable medium storing instructions that are executable by one or more processors to cause the one or more processors to perform a method, the method comprising:

receiving an indication of a selection of an application from one or more applications presented in an operator interface;

receiving selection of a user identity from a plurality of user identities presented in the operator interface;

identifying a computing platform implemented on a device associated with the selected user identity;

determining whether the selected application is compatible with the computing platform;

providing a compatibility indicator for display in the operator interface based on the determination and to indicate that the selected application is not compatible with the computing platform;

receiving an indication that the compatibility indicator has been selected; and

providing for display a reason that the selected application and the computing platform are not compatible.

18. The non-transitory computer-readable medium of claim 17 , wherein the compatibility indicator indicates that the application is not compatible with the computing platform and further comprising instructions that are executable to cause the one or more processors to perform:

presenting, in the operator interface, one or more of:

a reason that the application and the computing platform are not compatible; and a solution for making the application and the computing platform compatible.

19. The non-transitory computer-readable medium of claim 17 , wherein the device is associated with a first user, the user identity is associated with the first user, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, and further comprising instructions that are executable to cause the one or more processors to perform:

receiving an indication that a second user identity has been selected from the listing of user identities presented in the operator interface;

identifying a second computing platform implemented on a device associated with the second user identity;

determining whether the application is compatible with the second computing platform;

and

providing a second compatibility indicator for display in the operator interface based on the determination of whether the application is compatible with the second computing platform.

20. The non-transitory computer-readable medium of claim 17 , wherein the device associated with a first user, the user identity is included in a user group of which the first user is a member, the computing platform is a first computing platform, and the compatibility indicator is a first compatibility indicator, and further comprising instructions that are executable to cause the one or more processors to perform:

identifying a second computing platform implemented on a device associated with a second user within the user group;

determining whether the application is compatible with the second computing platform; and

providing a second compatibility indicator for display in the operator interface based on the determination of whether the application is compatible with the second computing platform.

Assignments (11)
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 →
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 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 →
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 →
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 →
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 Feb 14, 2017
From: LACHAMBRE, SHELDON FERDINAND; THORNLEY, DAVID GREGGORY; ROSENTHAL, TODD JOSEPH; CHANG, TIENFENG
To: CITRIX SYSTEMS, INC.
Reel/Frame 041255/0361 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: LACHAMBRE, SHELDON FERDINAND; THORNLEY, DAVID GREGGORY; ROSENTHAL, TODD JOSEPH
To: CITRIX SYSTEMS, INC.
Reel/Frame 041255/0218 →
INVENTIONS ASSIGNMENT AND NONCOMPETITION AGREEMENT Recorded Feb 14, 2017
From: CHANG, TIENFENG
To: CITRIX SYSTEMS, INC.
Reel/Frame 041770/0930 →
Continuity (2)
Provisional Application 61988697 · May 5, 2014
Related Publication 20150317235A1 · Nov 5, 2015