Patentable/Patents/US-10965733
US-10965733

Efficient, automated distributed-search methods and systems

PublishedMarch 30, 2021
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical 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.

Patent Claims
22 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A distributed-search subsystem comprising: a distributed computer system that includes multiple servers, communications subsystems, and data-storage subsystems; one or more local instances of the distributed-search subsystem, each local instance of the distributed-search subsystem providing a distributed-search interface, storing and maintaining local data, including filters, profiles, and search-evaluation expressions, and communicating with a centralized distributed-search engine; and one or more centralized distributed-search engines, each centralized distributed-search engine communicating with one or more local instances of the distributed-search subsystem, communicating with distributed-search participants, storing and maintaining centralized-distributed-search-engine data, including values of static attributes continuously requested from, and returned by, distributed-search participant systems, and maintaining, for each distributed search, an active search context that includes parameter values that control execution of the distributed search, one or more evaluator queues that each maintains an ordered set of attribute values returned by queried distributed-search participant systems, and a master queue that maintains a set of entries, each entry of the set describing a response returned by a queried distributed-search participant system and containing a score.

2

2. The distributed-search subsystem of claim 1 wherein the one or more local instances of the distributed-search subsystem each comprise a web application executed by a virtual execution environment within a server.

3

3. The distributed-search subsystem of claim 1 wherein one or more centralized distributed-search engines each comprise control programs executing in one or more virtual execution environments within one or more servers.

4

4. The distributed-search subsystem of claim 1 wherein the distributed-search interface provided by each local instance of the distributed-search subsystem provides facilities to: create and store filters; create and store profiles; create and store search-evaluation expressions; and request initiation of distributed searches.

5

5. The distributed-search subsystem of claim 4 wherein, in response to receiving a request to initiate a distributed search through the distributed-search interface, a local instance of the distributed-search subsystem packages a search-evaluation expression into a search-request message that the local instance of the distributed-search subsystem then transmits to a centralized distributed-search engine.

6

6. The distributed-search subsystem of claim 5 wherein the local instance of the distributed-search subsystem additionally packages, along with the search-evaluation expression, one or more filters and one or more profiles into the search-request message.

7

7. The distributed-search subsystem of claim 1 wherein, when a centralized distributed-search engine receives a search-request message, the centralized distributed-search engine: creates an active search context to describe and maintain state for the requested distributed search with parameter values specified in, or derived from, policies included in the search-request message and/or with default parameter values maintained by the centralized distributed-search engine; uses filters included in the search-request message, along with the stored static-attribute values, to generate a set of target participants, and places the active search context into a set of active search contexts monitored by the centralized distributed-search engine during distributed-search execution.

8

8. The distributed-search subsystem of claim 7 wherein the centralized distributed-search engine transmits dynamic-attribute-value-request messages to the target participants to obtain dynamic attribute values, included in response messages returned by the target participants, that are candidates for inclusion in the master queue.

9

9. The distributed-search subsystem of claim 7 wherein, when the centralized distributed-search engine receives a response message containing dynamic attribute values, the centralized distributed-search engine: identifies the active search context for the distributed search in the context of which the response message is sent; adds each dynamic attribute value extracted from the response message to a corresponding evaluator queue; adds the response message, or portions of the response message, as an entry to the master queue; computes a score for each entry in the master queue and adds the score to the entry; and when the master queue is completely full, removes a least-favorably-scored entry from the master queue along with the dynamic attribute values associated with the entry from the evaluator queues.

10

10. The distributed-search subsystem of claim 1 wherein attributes are identified by alphanumeric names and wherein attributes have values.

11

11. The distributed-search subsystem of claim 10 wherein attributes include: entity attributes associated with entities for which distributed searches are executed; search attributes that specify parameter values that control execution of distributed searches; and searching participant attributes that characterize distributed-search-subsystem participants that request searches.

12

12. The distributed-search subsystem of claim 10 wherein entity attributes include: static attributes, the values for which are periodically requested and received from distributed-search-subsystem participants and centrally stored by centralized distributed-search engines; and dynamic attributes, the values for which are requested from target participants during execution of distributed searches.

13

13. The distributed-search subsystem of claim 10 wherein attribute values are selected from one of: elements of sets; elements of ordered sets; subsets of sets; subsets of ordered sets; numeric values; numeric-value ranges; and Boolean values.

14

14. The distributed-search subsystem of claim 1 wherein a search-evaluation expression comprises one or more evaluator terms.

15

15. The distributed-search subsystem of claim 14 wherein an evaluator term includes a positive-minimum attribute.

16

16. The distributed-search subsystem of claim 15 wherein an evaluator term additionally includes one or both of: a weight; and a floor.

17

17. The distributed-search subsystem of claim 1 wherein a score included in an entry of the master queue is generated, from the dynamic attribute values included in a response message from a queried distributed-search participant system and from a search-evaluation expression associated with, or referenced by, the active search context that includes the master queue, by: determining, for each evaluator in the search context an initial value, a ratio of the initial value divided by the maximum dynamic attribute value stored in the evaluator queue corresponding to the evaluator, an intermediate value comprising a percentage corresponding to the ratio, when the evaluator includes a weight different from 1, multiplying the intermediate value by the weight to generate a final value, and when the evaluator does not include a weight different from 1, using the intermediate value as the final value, and combining the final values.

18

18. The distributed-search subsystem of claim 17 wherein the initial value is one of: the dynamic attribute value corresponding to the evaluator in the response message; and a floor included in the evaluator.

19

19. The distributed-search subsystem of claim 18 wherein combining the final values further comprises adding the final values together.

20

20. The distributed-search subsystem of claim 1 wherein a first score with a generated value less than the generated value of a second score is more favorable than the second score.

21

21. A method carried out in a distributed computer system that includes multiple servers, communications subsystems, and data-storage subsystems, the method comprising: providing, by one or more local instances of a distributed-search subsystem, a distributed-search interface; storing and maintaining, by the one or more local instances of a distributed-search subsystem, local data, including filters, profiles, and search-evaluation expressions; and communicating, by one or more local instances of a distributed-search subsystem, with a centralized distributed-search engine; communicating, by the centralized distributed-search engine, with one or more local instances of the distributed-search subsystem, communicating, by the centralized distributed-search engine, with one or more distributed-search participant systems, storing and maintaining, by the centralized distributed-search engine, centralized-distributed-search-engine data, including values of static attributes continuously requested from, and returned by, the one or more distributed-search participant systems, and maintaining, by the centralized distributed-search engine, for each distributed search an active search context that includes parameter values that control execution of the distributed search, one or more evaluator queues that each maintains an ordered set of attribute values returned by queried distributed-search participant systems, and a master queue that maintains a set of entries, each entry of the set describing a response returned by a queried distributed-search participant system and containing a score.

22

22. Computer instructions, encoded in a physical data-storage device, 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 that includes multiple servers, communications subsystems, and data-storage subsystems, a method comprising: providing, by one or more local instances of a distributed-search subsystem, a distributed-search interface; storing and maintaining, by the one or more local instances of a distributed-search subsystem, local data, including filters, profiles, and search-evaluation expressions; and communicating, by one or more local instances of a distributed-search subsystem, with a centralized distributed-search engine; communicating, by the centralized distributed-search engine, with one or more local instances of the distributed-search subsystem, communicating, by the centralized distributed-search engine, with one or more distributed-search participant systems, storing and maintaining, by the centralized distributed-search engine, centralized-distributed-search-engine data, including values of static attributes continuously requested from, and returned by, the one or more distributed-search participant systems, and maintaining, by the centralized distributed-search engine, for each distributed search an active search context that includes parameter values that control execution of the distributed search, one or more evaluator queues that each maintains an ordered set of attribute values returned by queried distributed-search participant systems, and a master queue that maintains a set of entries, each entry of the set describing a response returned by a queried distributed-search participant system and containing a score.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

October 4, 2016

Publication Date

March 30, 2021

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Efficient, automated distributed-search methods and systems” (US-10965733). https://patentable.app/patents/US-10965733

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.