IP Library › Granted Patent US 9,600,396
Granted Patent B2
US 9,600,396 · App. 14/643,593 · Granted Mar 21, 2017

Computer-implemented methods and systems for determining application matching status

Inventors: Sheldon Ferdinand LaChambre (London, GB); David Greggory Thornley (Algonquin, IL)
Assignee: Citrix Systems, Inc.
G06F11/3616G06F8/70G06F8/75G06F8/71
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,600,396
App. No.
14/643,593
Granted
Mar 21, 2017
Kind
B2
Abstract

Computer-implemented systems and methods are provided for determining application matching status. In one implementation, a method is implemented with one or more processors and includes accessing, at a server, a first dependency tree representing a first application and a second dependency tree, and acquiring one or more values for the first dependency tree and one or more values for the second dependency tree. The method also includes comparing the one or more values of the first dependency tree with the one or more values of the second dependency tree. The method further includes determining a matching status between the first application and an application represented by the second dependency tree based on the comparison, and providing, for display, an indication of the matching status.

Claims (52)

1. A system comprising:

a database configured to include dependency tree information associated with one or more applications; and

a server having one or more processors configured to:

access a first dependency tree representing a first application and a second dependency tree;

acquire one or more first values representing at least a portion of the first dependency tree and one or more second values representing at least a portion of the second dependency tree, wherein one or more of the first or second values represent multiple portions of the respective dependency tree;

compare the one or more first values of the first dependency tree with the one or more second values of the second dependency tree;

determine a matching status between the first application and an application represented by the second dependency tree based on the comparison, wherein each of the first dependency tree and the second dependency tree represent one or more executable files, one or more library files, and one or more API calls of the respective application; and

provide, for display, an indication of the matching status.

2. The system of claim 1 , wherein the second dependency tree represents a second application.

3. The system of claim 1 ,

wherein the one or more first values for the first dependency tree include a first value that represents the first dependency tree and the one or more second values for the second dependency tree include a second value that represents the second dependency tree, and

wherein the comparison between the one or more first values of the first dependency tree with the one or more second values of the second dependency tree includes a comparison between the first value and the second value.

4. The system of claim 1 , wherein the one or more first values for the first dependency tree include a first value that represents a portion of the first dependency tree and the one or more second values for the second dependency tree include a second value that represents a portion of the second dependency tree, and

wherein the comparison between the one or more first hash values of the first dependency tree with the one or more second hash values of the second dependency tree includes a comparison between the first value and the second value.

5. The system of claim 1 , wherein the one or more portions of the respective dependency tree include at least one of: one or more executable files, one or more library files, and one or more application programming interface (API) calls of the respective application.

6. The system of claim 1 , wherein the determination of the matching status is based on whether the comparison results in a percentage of matches between the one or more first values of the first dependency tree and the one or more second values of the second dependency tree that is at least equal to a predetermined threshold.

7. The system of claim 1 , wherein each of the first application and the application is either a new application or a newer version of an existing application.

8. A computer-implemented method comprising:

accessing a first dependency tree representing a first application and a second dependency tree;

acquiring, at a server, one or more first values representing at least a portion of the first dependency tree and one or more second values representing at least a portion of the second dependency tree, wherein one or more of the first or second values represent multiple portions of the respective dependency tree;

comparing the one or more first values of the first dependency tree with the one or more second values of the second dependency tree;

determining a matching status between the first application and an application represented by the second dependency tree based on the comparison, wherein each of the first dependency tree and the second dependency tree represent one or more executable files, one or more library files, and one or more API calls of the respective application; and

providing, for display, an indication of the matching status.

9. The method of claim 8 , wherein the second dependency tree represents a second application.

10. The method of claim 8 ,

wherein the one or more first values for the first dependency tree include a first value that represents the first dependency tree and the one or more second values for the second dependency tree include a second value that represents the second dependency tree, and

wherein comparing the one or more first values of the first dependency tree with the one or more second values of the second dependency tree includes comparing the first value with the second value.

11. The method of claim 8 ,

wherein the one or more first values for the first dependency tree include a first value that represents a portion of the first dependency tree and the one or more second values for the second dependency tree include a second value that represents a portion of the second dependency tree, and

wherein comparing the one or more first values of the first dependency tree with the one or more second values of the second dependency tree includes comparing the first value with the second value.

12. The method of claim 8 , wherein the one or more portions of the respective dependency tree include at least one of: one or more executable files, one or more library files, and one or more API calls of the respective application.

13. The method of claim 8 , wherein determining the matching status is based on whether the comparison results in a percentage of matches between the one or more first values of the first dependency tree and the one or more second values of the second dependency tree that is at least equal to a predetermined threshold.

14. The method of claim 8 , wherein each of the first application and the application is either a new application or a newer version of an existing application.

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

accessing a first dependency tree representing a first application and a second dependency tree;

acquiring, at a server, one or more first values representing at least a portion of the first dependency tree and one or more second values representing at least a portion of the second dependency tree, wherein one or more of the first or second values represent multiple portions of the respective dependency tree;

comparing the one or more first values of the first dependency tree with the one or more second values of the second dependency tree;

determining a matching status between the first application and an application represented by the second dependency tree based on the comparison, wherein each of the first dependency tree and the second dependency tree represent one or more executable files, one or more library files, and one or more API calls of the respective application; and

providing, for display, an indication of the matching status.

16. The computer-readable medium of claim 15 , wherein the second dependency tree represents a second application.

17. The computer-readable medium of claim 15 ,

wherein the one or more first values for the first dependency tree include a first value that represents the first dependency tree and the one or more second values for the second dependency tree include a second value that represents the second dependency tree, and

wherein comparing the one or more first values of the first dependency tree with the one or more second values of the second dependency tree includes comparing the first value with the second value.

18. The computer-readable medium of claim 15 ,

wherein the one or more first values for the first dependency tree include a first value that represents a portion of the first dependency tree and the one or more second values for the second dependency tree include a second value that represents a portion of the second dependency tree, and

wherein comparing the one or more first values of the first dependency tree with the one or more second values of the second dependency tree includes comparing the first value with the second value.

19. The computer-readable medium of claim 15 , wherein the one or more portions of the respective dependency tree include at least one of: one or more executable files, one or more library files, and one or more API calls of the respective application.

20. The computer-readable medium of claim 15 , wherein the determination of the matching status is based on whether the comparison results in a percentage of matches between the one or more first values of the first dependency tree and the one or more second values of the second dependency tree that is at least equal to a predetermined threshold.

21. The computer-readable medium of claim 15 , wherein each of the first application and the application is either a new application or a newer version of an existing application.

22. The system of claim 1 , wherein at least one of the first values or the second values is generated using a hash function.

23. The system of claim 1 , wherein the comparing further comprises the one or more processors configured to compare the one or more first values of the first dependency tree with the one or more second values of the second dependency tree, wherein the one or more second values and the one or more first values are on the same hierarchy from a top level hierarchy order of the respective dependency tree.

24. The system of claim 1 , wherein the first application is associated with a first platform and the application is compatible with a second platform that is different from the first platform.

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 12, 2015
From: LACHAMBRE, SHELDON FERDINAND; THORNLEY, DAVID GREGGORY
To: CITRIX SYSTEMS, INC.
Reel/Frame 035149/0696 →
Continuity (2)
Provisional Application 61951403 · Mar 11, 2014
Related Publication 20150261653A1 · Sep 17, 2015