Layered query management
First Claim
1. A method in a computer system for managing a database query, the method comprising the steps of:
- in a query client computer program, generating a query specifying database information to be retrieved, said query including a set of one or more search terms;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query, including modifying the set of search terms included in said query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a distributed software facility for tailoring an information retrieval query issued by a user based upon the position of that user within an organization of users. In a query client, the facility generates an information retrieval query on behalf of an identified user. The identified user is a member both of first logical subset of the organization and of a second logical subset of the organization. In a first proxy server corresponding to the first logical subset of the organization, the facility modifies the generated query based upon query modification criteria specified for members of the first logical subset. In a second proxy server corresponding to a second logical subset of the organization, the facility modifies the generated query based upon query modification criteria specified for members of the second logical subset. The facility then processes the query as modified by the first and second proxy servers to retrieve information responsive to the modified query.
120 Citations
48 Claims
-
1. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved, said query including a set of one or more search terms;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query, including modifying the set of search terms included in said query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved wherein the query contains an identification of one or more query servers to which the query may be forwarded for satisfaction;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query wherein the modifying step deletes from the query one or more selected identified query servers in accordance with standards maintained by the proxy server;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
-
-
7. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved wherein the query contains an identification of one or more query servers to which the query may be forwarded for satisfaction;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query wherein the modifying step adds to the query one or more identifications of selected query servers in accordance with standards maintained by the proxy server;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
-
-
8. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved wherein the query contains an identification of a plurality of query servers to which the query may be delivered for satisfaction;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query wherein the modifying step replaces in the query one or more selected identifications of query servers with one or more selected identifications of substitute query servers in accordance with standards maintained by the proxy server;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
-
-
9. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved, wherein the query generated in the client is generated by an identified user;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query, wherein the proxy server determines to reject the query based on the identity of the identified user;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
-
-
10. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction wherein the forwarding steps of the proxy server forward the query to a second proxy server computer program, the method further comprising the steps of, in the second proxy server;
determining, based on standards maintained by the second proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the second proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
-
-
11. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction wherein the forwarding steps forward the query to a plurality of query server computer programs, said method further comprising the steps of;
in each of the query servers, consulting a database in order to generate a query result satisfying the query; and
assembling the query results from the query servers into a master query result.
-
-
12. A method in a computer system for managing a database query, the method comprising the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved wherein the query generated in the client is generated by an identified user;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to reject the query;
if it is determined not to reject the query, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction;
wherein the forwarding steps forward the query to a query server computer program, further comprising the step of, in the query server, consulting a database in order to generate a query result satisfying the query, wherein the step of generating a query result generates a query result having columns each corresponding to a different data attribute, and wherein the identified user has a security rating reflecting columns that the identified user is qualified to receive, said method further comprising the steps of, in the query server; identifying any columns among those of the generated query result that the identified user is not qualified to received based on the security rating of the identified user;
deleting any identified columns; and
after the deleting step, transmitting the query result to the query client.
-
-
13. A computer-readable medium whose contents cause one or more computer systems to manage a database query by performing the steps of:
-
in a query client computer program, generating a query specifying database information to be retrieved;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction;
wherein the forwarding steps of the proxy server forward the query to a second proxy server computer program, and wherein the contents of the computer-readable medium further cause the computer systems to perform the steps of, in the second proxy server; determining, based on standards maintained by the second proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction.
-
-
14. A computer-readable medium whose contents cause one or more computer systems to manage a database query by performing the steps of;
-
in a query client computer program, generating a query specifying database information to be retrieved wherein the query generated in the client is generated by an identified user;
transmitting the generated query from the query client to a proxy server computer program;
in the proxy server, determining, based on standards maintained by the proxy server, whether to modify the query;
if it is determined to modify the query, modifying the query;
forwarding the modified query for satisfaction; and
if it is determined not to modify the query, forwarding the unmodified query for satisfaction;
wherein the forwarding steps forward the query to a query server computer program, and wherein the contents of the computer-readable medium further cause the computer systems to perform the step of, in the query server, consulting a database in order to generate a query result satisfying the query wherein the step of generating a query result generates a query result having columns each corresponding to a different data attribute, and wherein the identified user has a security rating reflecting columns that the identified user is qualified to receive, and wherein the contents of the computer-readable medium further cause the computer systems to perform the steps of, in the query server; identifying any columns among those of the generated query result that the identified user is not qualified to received based on the security rating of the identified user;
deleting any identified columns; and
after the deleting step, transmitting the query result to the query client.
-
-
15. A method in a computer system for managing a database query result, the method comprising the steps of:
-
in a proxy server computer program, determining, based on standards maintained by the proxy server, whether to modify the query result, said query result having been produced in satisfaction of a query generated by a user, wherein the determination is based at least in part on the identity of the user who generated the query;
if it is determined to modify the query result, modifying the query result;
returning the modified query result to a query client computer program;
if it is determined not to modify the query result, returning the unmodified query result to the query client; and
in the query client, presenting the query result returned by the proxy server. - View Dependent Claims (16, 17, 18)
-
-
19. A method in a computer system for tailoring an information retrieval query issued by a user based upon the position of that user within an organization of users, the method comprising the steps of:
-
in a query client, generating an information retrieval query on behalf of an identified user, the identified user being a member both of a first logical subset of the organization and of a second logical subset of the organization;
in a first proxy server corresponding to the first logical subset of the organization, modifying the generated query based upon query modification criteria specified for members of the first logical subset;
in a second proxy server corresponding to the second logical subset of the organization, modifying the generated query based upon query modification criteria specified for members of the second logical subset; and
processing the query as modified by the first and second proxy servers to retrieve information responsive to the modified query. - View Dependent Claims (20, 21, 22)
in the second proxy server, modifying the retrieved information based upon query result modification criteria specified for members of the second logical subset;
in the first proxy server, modifying the retrieved information based upon query result modification criteria specified for members of the first logical subset; and
in the query client, presenting the retrieved information as modified by the first and second proxy servers.
-
-
23. A computer-readable medium whose contents cause one more computer systems to tailor an information retrieval query issued by a user based upon the position of that user within an organization of users by performing the steps of:
-
generating an information retrieval query on behalf of an identified user, the identified user being a member both of a first logical subset of the organization and of a second logical subset of the organization;
in a first proxy server corresponding to the first logical subset of the organization, modifying the generated query based upon query modification criteria specified for members of the first logical subset;
in a second proxy server corresponding to the second logical subset of the organization, modifying the generated query based upon query modification criteria specified for members of the second logical subset; and
processing the query as modified by the first and second proxy servers to retrieve information responsive to the modified query. - View Dependent Claims (24, 25, 26)
in the second proxy server, modifying the retrieved information based upon query result modification criteria specified for members of the second logical subset;
in the first proxy server, modifying the retrieved information based upon query result modification criteria specified for members of the first logical subset; and
presenting the retrieved information as modified by the first and second proxy servers.
-
-
27. One or more computer memories that collectively contain a query management data structure for managing queries issued originating within particular subsets of an organization, the data structure comprising:
-
for each of a plurality of subsets of the organization, information specifying how queries originating within the subset are to be modified, such that, when a query is originated in the organization, the data structure may be used to modify the query in a manner consistent with the identity of the subsets of the organization in which the query is originated. - View Dependent Claims (28, 29, 30)
for each of the plurality of subsets of the organization, information specifying how query results for queries originating within the subset are to be modified, such that, when a query result is generated for a query originated in the organization, the data structure may be used to modify the query result in a manner consistent with the identity of the subsets of the organization in which the query is originated.
-
-
31. A computer memory containing a modified database query data structure representing a database query submitted by a user that is a member of the organization, the query having been modified to reflect the position of the user within the organization, the data structure comprising:
-
a first set of search terms produced by automatically modifying a second set of search terms submitted by the user in a manner that reflects the position of the user within the organization, such that, in response to the submission by the user of a query containing the second set of search terms, the first set of search terms contained in the data structure may be used to produce a query result based upon the query that reflects the position of the user within the organization.
-
-
32. A system for query processing comprising:
-
a first computer system having a first central processing unit, a first memory, and a first network connection for sending and receiving information to and from other computer systems, said first memory containing first programming executable on said first central processing unit whereby said first computer system generates queries based on user control and sends said queries over said network connection;
a second computer system having a second central processing unit, a second memory, and a second network connection for sending and receiving information to and from other computer systems, said second memory containing second programming executable on said second central processing unit whereby said second computer system;
receives queries from said first computer system by way of said second network connection;
modifies said queries; and
sends the modified queries over said network connection; and
a third computer system having a third central processing unit, a third memory, and a third network connection for sending and receiving information to and from other computer systems, said third computer system being in communication with a database, said third memory containing third programming executable on said third central processing unit whereby said third computer system;
retrieves information from said database based on the modified queries and removes at least some of the retrieved information to produce results; and
sends said results over said third network connection to said second computer system.- View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41)
receives said result from said third computer system by way of said second network connection;
modifies said results; and
sends said second results to said first computer system over said second network connection.
-
-
37. The system of claim 36, wherein said queries contain indications of which proxy servers may or may not modify the results of said queries, and said second programming conditions the modification of said results upon said indications.
-
38. The system of claim 32, wherein said second memory further contains a query result modification table, and wherein said second computer system, by way of said second programming, modifies said result based on said query result modification table.
-
39. The system of claim 32, wherein modification of said queries includes adding a database to the set of databases to be searched to satisfy said queries.
-
40. The system of claim 32, wherein modification of said queries includes adding search terms to said queries.
-
41. The system of claim 32, wherein said third memory further contains firewall programming executable on said third central processing unit, said firewall programming controlling the passage of information over said network connection.
-
42. A system for modifying queries and query results comprising:
-
a computer system having a central processing unit, a memory, and a network connection;
a first portion of said memory for storing query modification information;
a second portion of said memory for storing query-result modification information; and
proxy server programming stored in said memory and executable on said central processing unit whereby said computer system;
receives a query from a query client by way of said network connection;
modifies said query based on the contents of said first portion of said memory;
sends said query to a query server by way of said network connection;
receives a query result from said query server by way of said network connection;
modifies said query result based on the contents of said second portion of said memory; and
sends said query result to said query client by way of said network connection.- View Dependent Claims (43, 44, 45)
-
-
46. A query-processing system operating on one or more computer systems, each of said computer systems having a central processing unit and a memory, said system comprising:
-
a query modification table loaded into the memory of one of said computer systems;
a query-result modification table loaded into the memory of one of said computer systems;
a query-result limitation table loaded into the memory of one of said computer systems;
query client programming loaded into the memory of one of said computer systems and executable on the central processing unit of the computer system into whose memory said query client programming is loaded, whereby the computer system onto which said query client programming is loaded;
generates queries based on control by a user;
forwards said queries for modification;
receives a modified result; and
displays said result to said user;
proxy server programming loaded into the memory of one of said computer systems and executable on the central processing unit of the computer system into whose memory said proxy server programming is loaded, whereby the computer system onto which said proxy server programming is loaded;
receives said forwarded queries;
modifies said forwarded queries based on said query modification table;
forwards the modified queries for satisfaction;
receives the result of said satisfaction;
modifies said result based on said query-result modification table; and
forwards the modified result for display by said query client programming; and
query server programming loaded into the memory of one of said computer systems and executable on the central processing unit of the computer system onto which said query server programming is loaded, whereby said query server programming;
provides access to a database;
satisfies said modified query by retrieving information from said database;
removes at least some of the retrieved information based on said query-result limitation table to produce a result; and
forwards said result for modification by said proxy server programming.- View Dependent Claims (47, 48)
-
Specification