IP Library Granted Patent US 12,063,265
Granted Patent B2
US 12,063,265 · App. 17/214,501 · Granted Aug 13, 2024

Efficient, automated distributed-search methods and systems

Inventor: Daniel James Beveridge (Apollo Beach, FL)
Assignee: VMware LLC
H04L67/10G06F9/455G06F9/45558G06F16/2471H04L47/70G06F2009/45579
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,063,265
App. No.
17/214,501
Granted
Aug 13, 2024
Kind
B2
Abstract

The current document is directed to efficient, distributed-search methods and subsystems within distributed computer systems, including computer systems distributed over multiple sets of geographically distributed data centers, each comprising multiple discrete computer systems, such as multi-processor servers. In one implementation, the distributed-search methods and subsystems are implemented locally within participating entities as well as within one or more distributed-search engines. Each search is directed, by a participant, to identify attribute-associated entities within, provided by, connected to, or otherwise accessible to a distributed computing system having attribute values specified or indicated by the search query. Certain attribute values are continuously collected and centrally stored by the one or more centralized distributed-search engines while other attribute values are obtained through information requests distributed among participating entities.

Claims (99)

1. A distributed-search subsystem comprising:

a distributed computer system that includes multiple servers, communications subsystems, and data-storage subsystems;

one or more centralized distributed-search engines, each centralized distributed-search engine being configured for storing and maintaining centralized-distributed-search-engine data, including values of static attributes continuously requested from, and returned by, distributed-search participant systems and an active search context for each distributed search; and

one or more local instances of the distributed-search subsystem within each of multiple server clusters, virtual data centers, and/or other distributed-search participant systems, each local instance of the distributed-search subsystem being configured for storing and maintaining local data, including filters, profiles, and search-evaluation expressions, and further being configured for providing a distributed-search user interface to distributed-search-subsystem users, the distribute-search user interface comprising a first interface configured to specify filters, policies, evaluators, search-evaluation expressions, and search queries, a second interface configured to initiate distributed searches, and a third interface configured to initiate administration operations and a fourth interface configured to invoke administration functionalities.

2. The distributed-search subsystem of claim 1 wherein filters, policies, search-evaluation expressions, and search queries are constructed from attributes and associated values that characterize entities that are managed by, contained within, or accessible to distributed-search participant systems and that are identified by distributed searches initiated by users through the distributed-search interface.

3. The distributed-search subsystem of claim 2 wherein an attribute is an alphanumeric string that identifies a particular attribute within a set of attributes.

4. The distributed-search subsystem of claim 3 wherein an attribute has a type selected from among:

an entity attribute, which is associated with entities that are identified by searches;

a search attribute, which identifies particular parameters for a given distributed search; and

a search-participant attribute, which characterizes a distributed-search participant system.

5. The distributed-search subsystem of claim 4 wherein an entity attribute has a subtype selected from among:

a static entity attribute, which, when instantiated, has either constant value or a value that is only infrequently changed and can therefore be pre-fetched and stored by the one or more centralized distributed-search engines in advance of being used during the initiation of distributed searches; and

a dynamic entity attribute, the value associated with which is frequently modified and is therefore retrieved, during a distributed search, from target distributed-search participant systems.

6. The distributed-search subsystem of claim 4 wherein a value currently associated with an attribute is represented by an alphanumeric string which specifies one of:

a numeric value;

a numeric-range value;

a single element of an unordered set of elements;

a subset of an unordered set of elements;

a single element of an ordered set of elements;

a subset of an ordered set of elements;

a Boolean value, and

a call to a function or procedure that returns a numeric, unordered-set, ordered-set, or Boolean value.

7. The distributed-search subsystem of claim 6

wherein values are combined to produce value expressions, equivalent to constant values, using binary arithmetic operators and binary set operators as well as arithmetic and set unary operators;

wherein attributes are combined to produce attribute expression, equivalent to a constant value;

wherein a derived attribute is an attribute defined in terms of other attributes;

wherein value expressions are combined to produce relational value expressions using relational binary operators, relational unary operators, and logical operators.

8. The distributed-search subsystem of claim 2

wherein a filter is a relational expression that specifies a value or range of values for an attribute;

wherein a policy comprises one or more filters;

wherein an evaluator is one of

a simple evaluator, comprising one of a minimum-positive attribute having values selected from a numeric or ordered-set value domain that map to a set of numerically increasing values, and

a floor/minimum-positive-attribute pair, and

a weight/simple-evaluator pair, wherein a weight is a numeric multiplier used to adjust the relative importance of attributes in search-evaluation expressions and a floor is a numeric or ordered-set value;

wherein a search-evaluation expression comprises one or more evaluators; and

wherein a search query is either a search-evaluation expression or a search-evaluation expression and one or more policies.

9. The distributed-search subsystem of claim 8 wherein the distribute-search user interface further comprising:

a fifth interface configured for, when a search query for the distributed search has already been constructed and stored through the distributed-search user interface, select the already constructed and stored search query;

a fifth interface configured for, when a search query for the distributed search has already been constructed and stored through the distributed-search user interface, construct a search query for the distributed search; and

a fifth interface configured for using one or more control features provided by the distributed-search user interface to request that a distributed search be initiated with respect to the search query.

10. The distributed-search subsystem of claim 9 wherein a user constructs a search query for the distributed search through the distributed-search user interface by:

when a search-evaluation expression for the search query has already been constructed and stored, selecting the already constructed and stored search-evaluation expression; and

when a search-evaluation expression for the distributed search has not already been constructed and stored, constructing a search-evaluation expression for the distributed search by selecting and/or constructing one or more evaluators; and

when one or more policies are needed for the search query,

selecting and/or constructing the one or more policies, where a policy is constructed by selecting and/or constructing one or more filters.

11. A method that initializes a distributed search within a distributed computer system for entities that are managed by, contained within, or accessible to distributed-search participant systems through a distributed-search user interface provided by a distributed-search subsystem operating within the distributed computer system, the method comprising:

when a search query for the distributed search has already been stored through the distributed-search user interface, select the already constructed and stored search query;

when a search query for the distributed search has not been stored through the distributed-search user interface, construct a search query for the distributed search; and

using one or more control features provided by the distributed-search user interface to request that a distributed search be initiated with respect to the search query;

wherein the distributed computer system includes multiple servers,

communications subsystems, and data-storage subsystems; and

wherein the distributed-search subsystem comprises one or more centralized distributed-search engines, each centralized distributed-search engine storing and maintaining centralized-distributed-search-engine data, including values of static attributes continuously requested from, and returned by, distributed-search participant systems and an active search context for each distributed search; and

one or more local instances of the distributed-search subsystem within each of multiple server clusters, virtual data centers, and/or other distributed-search participant systems, each local instance of the distributed-search subsystem storing and maintaining local data, including filters, profiles, and search-evaluation expressions, and providing a distributed-search user interface to distributed-search-subsystem users through which users specify filters, policies, evaluators, search-evaluation expressions, and search queries, initiate distributed earches, and

initiate administration operations and invoke administration functionalities.

12. The method of claim 11

wherein filters, policies, search-evaluation expressions, and search queries are constructed from attributes and associated values that characterize entities that are managed by, contained within, or accessible to distributed-search participant systems and that are identified by distributed searches initiated by users through the distributed-search interface;

wherein an attribute is an alphanumeric string that identifies a particular attribute within a set of attributes; and

wherein an attribute has a type selected from among:

an entity attribute, which is associated with entities that are identified by searches,

a search attribute, which identifies particular parameters for a given distributed search, and

a search-participant attribute, which characterizes a distributed-search participant system.

13. The method of claim 12 wherein an entity attribute has a subtype selected from among:

a static entity attribute, which, when instantiated, has either constant value or a value that is only infrequently changed and can therefore be pre-fetched and stored by the one or more centralized distributed-search engines in advance of being used during the initiation of distributed searches; and

a dynamic entity attribute, the value associated with which is frequently modified and is therefore retrieved, during a distributed search, from target distributed-search participant systems.

14. The method of claim 13 wherein a value currently associated with an attribute is represented by an alphanumeric string which specifies one of:

a numeric value;

a numeric-range value;

a single element of an unordered set of elements;

a subset of an unordered set of elements;

a single element of an ordered set of elements;

a subset of an ordered set of elements;

a Boolean value, and

a call to a function or procedure that returns a numeric, unordered-set, ordered-set, or Boolean value.

15. The method of claim 14 wherein values are combined to produce value expressions, equivalent to constant values, using binary arithmetic operators and binary set operators as well as arithmetic and set unary operators;

wherein attributes are combined to produce attribute expression, equivalent to a constant value;

wherein a derived attribute is an attribute defined in terms of other attributes;

wherein value expressions are combined to produce relational value expressions using relational binary operators, relational unary operators, and logical operators.

16. The method of claim 12 wherein a filter is a relational expression that specifies a value or range of values for an attribute;

wherein a policy comprises one or more filters;

wherein an evaluator is one of a simple evaluator, comprising one of a minimum-positive attribute having values selected from a numeric or ordered-set value domain that map to a set of numerically increasing values, and a floor/minimum-positive-attribute pair, and a weight/simple-evaluator pair, wherein a weight is a numeric multiplier used to adjust the relative importance of attributes in search-evaluation expressions and a floor is a numeric or ordered-set value;

wherein a search-evaluation expression comprises one or more evaluators; and

wherein a search query is either a search-evaluation expression or a search-evaluation expression and one or more policies.

17. The method of claim 12 wherein a user constructs a search query for the distributed search through the distributed-search user interface by:

when a search-evaluation expression for the search query has already been constructed and stored, selecting the already constructed and stored search-evaluation expression; and

when a search-evaluation expression for the distributed search has not already been constructed and stored, constructing a search-evaluation expression for the distributed search by selecting and/or constructing one or more evaluators; and

when one or more policies are needed for the search query, selecting and/or constructing the one or more policies, where a policy is constructed by selecting and/or constructing one or more filters.

18. A physical data-storage device encoded with computer instructions that, when read from the physical data-storage device and executed by one or more processors, control the one or more processors to carry out, in a distributed computer system, a method that uses the distributed computer system configured to initializes a distributed search within the distributed computer system for entities that are managed by, contained within, or accessible to distributed-search participant systems through a distributed-search user interface provided by a distributed-search subsystem operating within the distributed computer system, the method comprising:

providing a first interface configured to, when a search query for the distributed search has already been constructed and stored through the distributed-search user interface, select the already constructed and stored search query;

providing a second interface configured to, when a search query for the distributed search has already been constructed and stored through the distributed-search user interface, construct a search query for the distributed search; and

providing a first interface configured to using one or more control features provided by the distributed-search user interface to request that a distributed search be initiated with respect to the search query.

19. The physical data-storage device of claim 18

wherein the distributed computer system includes multiple servers, communications subsystems, and data-storage subsystems; and

wherein the distributed-search subsystem comprises:

one or more centralized distributed-search engines, each centralized distributed-search engine storing and maintaining centralized-distributed-search-engine data, including values of static attributes continuously requested from, and returned by, distributed-search participant systems and an active search context for each distributed search; and

one or more local instances of the distributed-search subsystem within each of multiple server clusters, virtual data centers, and/or other distributed-search participant systems, each local instance of the distributed-search subsystem storing and maintaining local data, including filters, profiles, and search-evaluation expressions, and

providing a distributed-search user interface to distributed-search-subsystem users through which users

specify filters, policies, evaluators, search-evaluation expressions, and

search queries, initiate distributed searches, and

initiate administration operations and invoke administration functionalities.

Assignments (1)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →