IP Library Granted Patent US 12,014,169
Granted Patent B2
US 12,014,169 · App. 17/415,615 · Granted Jun 18, 2024

Software recognition using tree-structured pattern matching rules for software asset management

Inventors: Kenneth Aas Hansen (Hamar, NO); Rolf Georg Lunder (Lillehammer, NO); Lars Køhler (Hamar, NO); Peter Björkman (Trångsund, SE)
Assignee: SNOW SOFTWARE, INC.
G06F8/70G06F21/105G06Q10/087G06F21/1073
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 12,014,169
App. No.
17/415,615
Granted
Jun 18, 2024
Kind
B2
Abstract

A method for software identification in a software asset management system is provided. The method comprises receiving software inventory data from a user terminal and processing the software inventory data, wherein processing the software inventory data comprise identifying software information based on the software inventory data. Thereby the software characteristics are identified.

Claims (28)

1. A method for software identification in a software asset management system comprising a processing unit, at a central unit, configured to identify software characteristics on software inventory data from a user terminal, the method comprising:

receiving, at the central unit, the software inventory data from the user terminal;

normalizing the received software inventory data;

filtering, at the central unit, the software inventory data through a probabilistic data structure to determine whether any of the software inventory data is not in a database of known kinds of software, wherein the database includes a plurality of database software records that are structured into a tree-like structure having a plurality of nodes that split the database into a plurality of subsections based on different properties that need to be satisfied for identifying an individual record of software of the software inventory data as a known kind of software;

testing, at the central unit, the software inventory data against a portion of a plurality of rules for the database where the plurality of rules are based on the different properties that need to be satisfied, wherein the testing includes traversal of the plurality of nodes according to a traversal scheme where each node of the plurality of nodes is associated with a set of rules of the plurality of rules until a set of rules of a node is satisfied;

identifying a software information from a database software record of the plurality of database software records that is associated with the node where the set of rules are satisfied by the software inventory data; and

determining, at the central unit, whether the identified software information is compliant with one or more constraints.

2. The method according to claim 1 , wherein testing the software inventory data is performed against a subset of rules out of the plurality of rules, wherein the number of rules in the plurality of rules are more than the number of rules in the subset of rules.

3. The method according to claim 2 , wherein testing the software inventory data is performed against a second subset of rules out of the plurality of rules, wherein the number of rules in the plurality of rules are more than the number of rules in the second subset of rules.

4. The method according to claim 2 , wherein testing the software inventory data is performed against a first subset of rules out of the plurality of rules, and if the testing does not match a rule in the first subset of rules, testing the software inventory data performed against a second subset of rules out of the plurality of rules, wherein the second subset of rules is different from the first subset of rules.

5. The method according to claim 1 , wherein the plurality of rules are divided into subsets of rules that are mutually exclusive.

6. The method according to claim 5 , wherein testing the software inventory data is performed against a subset out of the subset of rules, wherein the number of rules in the subset out of the subset of rules are less than the number of rules in the subset of rules.

7. The method according to claim 6 , wherein testing the software inventory data is not performed against another subset of rules out of the plurality of rules, wherein the number of rules in the plurality of rules are more than the number of rules in the other subset of rules.

8. The method according to claim 1 , wherein normalizing the received software inventory data comprise:

dividing each one of the software inventory data into parts;

modifying the divided software inventory data by truncating each part or by addition of predefined characters to each part so that each part has a standardized length;

forming a normalized software inventory data by joining the modified parts of the software inventory data.

9. The method according to claim 1 , wherein normalizing the received software inventory data comprises generating a plurality of hash digests each based on a different respective individual record of the software inventory data.

10. The method according to claim 1 , wherein identifying the software information based on the software inventory data is performed by text pattern matching.

11. A software asset management system comprising a processing unit, at a central unit, configured for software identification and to identify software characteristics on software inventory data from a user terminal, wherein the system is arranged to:

receive, at the central unit, the software inventory data from the user terminal; and

normalize the received software inventory data;

filter, at the central unit, the software inventory data through a probabilistic data structure to determine whether any of the software inventory data is not in a database of known kinds of software, wherein the database includes a plurality of database software records that are structured into a tree-like structure having a plurality of nodes that split the database into a plurality of subsections based on different properties that need to be satisfied for identifying an individual record of software of the software inventory data as a known kind of software;

test, at the central unit, the software inventory data, against a portion of a plurality of rules for the database where the plurality of rules are based on the different properties that need to be satisfied, wherein the testing includes traversal of the plurality of nodes according to a traversal scheme where each node of the plurality of nodes is associated with a set of rules of the plurality of rules until a set of rules of a node is satisfied;

identify a software information from a database software record of the plurality of database software records that is associated with the node where the set of rules are satisfied by the software inventory data; and

determine, at the central unit, whether the identified software information is compliant with one or more constraints.

12. The method of claim 1 , wherein the database stores more than one-hundred thousand software records.

13. The method of claim 1 , wherein a constraint of the one or more constraints includes a count of a number of instances.

Assignments (8)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 066615-0824 Recorded Aug 22, 2025
From: JEFFERIES FINANCE LLC
To: SNOW SOFTWARE, INC.
Reel/Frame 072527/0879 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
MERGER Recorded Nov 22, 2024
From: SNOW SOFTWARE US, INC.
To: FLEXERA SOFTWARE LLC
Reel/Frame 069373/0957 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: SNOW SOFTWARE, INC.
Reel/Frame 067165/0214 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Feb 16, 2024
From: SNOW SOFTWARE, INC.
To: JEFFERIES FINANCE LLC, AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 066619/0340 →
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Feb 16, 2024
From: SNOW SOFTWARE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 066615/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2021
From: BJÖRKMAN, PETER; LUNDER, ROLF GEORG; HANSEN, KENNETH AAS; KØHLER, LARS
To: SNOW SOFTWARE, INC.
Reel/Frame 058170/0988 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2021
From: SNOW SOFTWARE AB
To: SNOW SOFTWARE, INC.
Reel/Frame 056793/0839 →