Scalable proxy servers with plug-in filters
First Claim
1. A method of filtering information between a first process executing on a first processor and a second process executing on a second processor using a proxy separate from the first and second processors, comprising the steps of:
- receiving, at the proxy, a plurality of sets of instructions configured by the first process that are identified based on respective rules for providing information between the first and second processes;
receiving, at the proxy, information from the first process that is destined to the second process;
determining whether the information destined to the second process satisfies at least one of the rules;
selecting sets of instructions identified by the rules that were satisfied;
filtering, at the proxy, the information destined to the second process based on the selected sets of instructions;
modifying the information destined to the second process based on the selected sets of instructions; and
transmitting the modified information to the second process.
2 Assignments
0 Petitions
Accused Products
Abstract
A proxy server operative to accept plug-in filters to perform forward and reverse filtering between a client process and a server process. In accordance with one aspect of the invention, a method of filtering information includes the steps of receiving a request by the proxy server from a client. The proxy server identifies a Uniform Resource Locator (URL) of a server process in the request and compares that URL against filter rules previously defined to the system. In the event the URL satisfies one of the filter rules, a filter servlet associated with the satisfied filter rule is used to filter the requested information. A filter servlet is a set of instructions that, when executed, filters the information. The filtered request is then used to retrieve information from a server process. Similarly, the same filtering process may be performed on a response from the server process destined for a client process.
-
Citations
25 Claims
-
1. A method of filtering information between a first process executing on a first processor and a second process executing on a second processor using a proxy separate from the first and second processors, comprising the steps of:
-
receiving, at the proxy, a plurality of sets of instructions configured by the first process that are identified based on respective rules for providing information between the first and second processes;
receiving, at the proxy, information from the first process that is destined to the second process;
determining whether the information destined to the second process satisfies at least one of the rules;
selecting sets of instructions identified by the rules that were satisfied;
filtering, at the proxy, the information destined to the second process based on the selected sets of instructions;
modifying the information destined to the second process based on the selected sets of instructions; and
transmitting the modified information to the second process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
receiving a response from the second process based on the modified information;
modifying, at the proxy, the response based on the selected sets of instructions; and
transmitting the modified response to the first processor.
-
-
5. The method of claim 4, further comprising:
caching the modified response at the proxy.
-
6. The method of claim 1, wherein determining whether the information destined to the second process satisfies at least one of the rules comprises:
-
identifying a first Uniform Resource Locator (URL) in the information;
retrieving a second URL based on the information; and
comparing the first URL and the second URL.
-
-
7. The method of claim 1, wherein receiving, at the proxy, the plurality of sets of instructions comprises receiving at least one plug-in.
-
8. The method of claim 7, wherein filtering, at the proxy, the information based on the selected sets of instructions comprises executing the plug-in at the proxy.
-
9. A method of filtering information between a client and a server using a proxy server separate from the client and the server, comprising:
-
receiving requests from a client process executing on the client;
determining, at the proxy server, when the requests satisfy at least one of a first plurality of rules that each identify a set of instructions configured by the client;
selecting sets of instructions that are identified by the satisfied rules of the first plurality of rules;
filtering, at the proxy server, the requests based on the selected sets of instructions;
transmitting the requests that passed the filtering at the proxy server to a server process executing on the server;
receiving responses from the server based on the transmitted requests;
determining when the responses satisfy at least one of a second plurality of rules that each identify an additional set of instructions;
selecting additional sets of instructions that are identified by the satisfied rules of the second plurality of rules; and
filtering, at the proxy server, the responses based on the selected additional sets of instructions that correspond to the satisfied rules of the second plurality of rules. - View Dependent Claims (10, 11, 12, 13, 14)
identifying a Uniform Resource Locator (URL) in at least one of the requests; and
filtering the at least one request based on the identified URL.
-
-
11. The method of claim 9, wherein filtering, at the proxy server, the response comprises:
-
identifying a Uniform Resource Locator (URL) in at least one of the responses; and
filtering the at least one response based on the identified URL.
-
-
12. The method of claim 11, further comprising;
caching, at the proxy server, the at least one response.
-
13. The method of claim 9, further comprising;
receiving, at the proxy server, at least one additional set of instructions configured by the client.
-
14. The method of claim 13, wherein receiving the at least one additional set of instructions comprises receiving a plug-in configured by the client.
-
15. An apparatus for filtering information between a first processor and a second processor, wherein the apparatus is separate from the first and second processors, comprising:
-
means for receiving a plurality of sets of instructions configured by the first processor that are identified based on respective rules for transmitting information from the first processor to the second processor;
means for receiving information from the first processor that is destined to the second processor;
means for determining whether the information destined to the second processor satisfies at least one of the rules;
means for selecting sets of instructions identified by the rules that were satisfied;
means for filtering the information destined to the second processor based on the selected sets of instructions;
means for modifying the information destined to the second processor based on the selected sets of instructions; and
means for transmitting the modified information to the second processor.
-
-
16. An apparatus for filtering information between a client and a server, wherein the apparatus is separate from the client and the server, comprising:
-
means for receiving requests from a client process executing on the client;
means for determining when the requests satisfy at least one of a first plurality of rules that each identify a set of instructions configured by the client;
means for selecting sets of instructions configured by the client that are identified by the satisfied rules of the first plurality of rules;
means for filtering the requests based on the selected sets of instructions;
means for transmitting the requests passed by the means for filtering to a server process executing on the server;
means for receiving responses from the server based on the transmitted requests;
means for determining when the responses satisfy at least one of a second plurality of rules that each identify an additional set of instructions;
means for selecting additional sets of instructions that are identified by the satisfied rules of the second plurality of rules; and
means for filtering the responses based on the selected additional sets of instructions that correspond to the satisfied rules of the second plurality of rules.
-
-
17. A proxy for filtering information between a first processor and a second processor and separate from the first and second processors, comprising:
-
a first filter, coupled to the first processor, for receiving information from the first processor and a plurality of sets of instructions that are identified based on respective rules;
a third processor, coupled to the first filter, for determining whether the information satisfies at least one of the rules, selecting at least one of the sets of instructions identified by the rules that were satisfied, determining whether the received information is destined to the second processor, and modifying the received information based on the at least one selected set of instructions; and
a second filter, coupled to the second processor and third processor, for receiving the modified information from the third processor and filtering the modified information based on a second set of rules. - View Dependent Claims (18, 19, 20)
a memory for storing the at least one response from the second processor; and
wherein the first filter is configured to provide the stored at least one response to at least one additional processor based on receiving a request from the at least one additional processor that is destined to the second processor.
-
-
20. The proxy of claim 18, wherein the third processor modifies the received information based on at least one plug-in configured by the first processor.
-
21. A computer-readable medium comprising computer-executable instructions executed by a proxy separate from a first processor and a second processor for filtering information between the first processor and the second processor, the computer-readable medium comprising:
-
program code for receiving a plurality of sets of instructions configured by the first processor that are identified based on respective rules for providing information between the first and second processors;
program code for receiving information from the first processor that is destined to the second processor;
program code for determining whether the information destined to the second processor satisfies at least one of the rules;
program code for selecting sets of instructions identified by the rules that were satisfied;
program code for filtering the information destined to the second processor based on the selected sets of instructions;
program code for modifying the information destined to the second processor based on the selected sets of instructions; and
program code for transmitting the modified information to the second processor.
-
-
22. A computer-readable medium comprising computer-executable instructions executed by a proxy server separate from a client and a server for filtering information between the client and the server, the computer-readable medium comprising:
-
program code for receiving requests from a client process executing on the client;
program code for determining when the requests satisfy at least one of a first plurality of rules that each identify a set of instructions;
program code for filtering the requests based on the sets of instructions that correspond to satisfied rules of the first plurality of rules;
program code for transmitting the filtered requests to a server process executing on the server;
program code for receiving responses from the server based on the transmitted requests;
program code for determining when the responses satisfy at least one of a second plurality of rules that each identify an additional set of instructions;
program code for selecting additional sets of instructions that are identified by the satisfied rules of the second plurality of rules; and
program code for filtering the responses based on the selected additional sets of instructions that correspond to the satisfied rules of the second plurality of rules.
-
-
23. A method of filtering information between a first processor and a second processor using a proxy separate from the first and second processors, comprising the steps of:
-
receiving, at the proxy, a plurality of sets of instructions configured by the first processor that are identified based on respective rules for providing information between the first and second processors;
receiving, at the proxy, information from the first processor that is destined to the second processor;
determining whether the information destined to the second processor satisfies at least one of the rules;
selecting sets of instructions identified by the rules that were satisfied;
filtering, at the proxy, the information destined to the second processor based on the selected sets of instructions;
modifying the information destined to the second processor based on the selected sets of instructions; and
transmitting the modified information to the second processor.
-
-
24. A system for filtering information between a first processor and a second processor using a proxy separate from the first and second processors, comprising the steps of:
-
means for receiving, at the proxy, a plurality of sets instructions configured by the first processor that are identified based on respective rules for providing information between the first and second processors;
means for receiving, at the proxy, information from the first processor that is destined to the second processor;
means for determining whether the information destined to the second processor satisfies at least one of the rules;
means for selecting sets of instructions identified by the rules that were satisfied;
means for filtering the information destined to the second processor based on the selected sets instructions;
means for modifying the information destined to the second processor based on the selected sets of instructions; and
means for transmitting the modified information to the second processor.
-
-
25. A computer-readable medium comprising computer-executable instructions executed by a proxy server separate from a first processor and a second processor for filtering information between the first and second processors, the computer-readable medium comprising:
-
program code for receiving, at the proxy, a plurality of sets of instructions configured by the first processor that are identified based on respective rules for providing information between the first and second processors;
program code for receiving, at the proxy, information from the first processor that is destined to the second processor;
program code for determining whether the information destined to the second processor satisfies at least one of the rules;
program code for selecting sets of instructions identified by the rules that were satisfied;
program code for filtering the information destined to the second processor based on the selected sets of instructions;
program code for modifying the information destined to the second processor based on the selected sets of instructions; and
program code for transmitting the modified information to the second processor.
-
Specification