1. A method of routing client requests in a distributed computing system, the method comprising:
in response to receiving a request in the client:
selecting one of a plurality of servers to handle the request based upon a routing table resident in the client; and
sending the request to the selected server; and
in response to receiving a response to the request from the selected server;
determining whether the response indicates that the request needs to be rerouted;
updating a rerouting statistic if the response indicates that the request needs to be rerouted; and
retrieving an updated copy of the routing table for the client if the rerouting statistic meets a propagation criterion.
2. A method of propagating routing information in a distributed computing system, the method comprising:
tracking reroutes of client requests from a client that are routed according to routing information associated with the client; and
selectively initiating propagation of updated routing information for the client based upon the tracked reroutes of client requests.
3. The method of claim 2, wherein the routing information associated with the client is resident in the client, and wherein tracking reroutes of client requests and selectively initiating propagation of the routing information are performed by the client.
4. The method of claim 3, further comprising, in the client, routing the client requests according to the routing information resident in the client.
5. The method of claim 4, wherein routing the client requests includes, for a first request, selecting one of a plurality of servers to handle the first request based upon the routing information and forwarding the first request to the selected server.
6. The method of claim 5, wherein the plurality of servers comprise a cluster, and wherein the client is a client of the cluster.
7. The method of claim 5, wherein the client and the plurality of servers each comprise a process.
8. The method of claim 2, wherein the routing information associated with the client is resident in a gateway, and wherein at least one of tracking reroutes of client requests and selectively initiating propagation of the routing information are performed by the gateway.
9. The method of claim 2, wherein the routing information includes a routing table.
10. The method of claim 2, wherein tracking reroutes of client requests includes incrementing a rerouting counter in response to receiving a response to a client request that indicates that the request needs to be rerouted.
11. The method of claim 10, further comprising incrementing a request counter in response to receiving a response to a client request, wherein selectively initiating propagation of the routing information for the client based upon the tracked reroutes of client requests includes initiating propagation of the routing information for the client in response to a ratio between the rerouting and request counters exceeding a threshold.
12. The method of claim 2, wherein selectively initiating propagation of the routing information for the client based upon the tracked reroutes of client requests includes initiating propagation of the routing information for the client in response to a rerouting ratio meeting a propagation criterion.
13. The method of claim 12, wherein the propagation criterion is a rerouting ratio for the client exceeding a threshold.
14. The method of claim 2, wherein selectively initiating propagation of the routing information for the client based upon the tracked reroutes of client requests is performed in response to receiving a response to a client request that indicates that the request needs to be rerouted.
15. The method of claim 2, wherein initiating propagation of the routing information for the client includes requesting download of an updated copy of a routing table for the client.
16. The method of claim 2, further comprising updating the routing information associated with the client in a first process separate from a second process that routes client requests according to the routing information, wherein initiating propagation of updated routing information for the client includes retrieving updated routing information generated in the first process into the second process.
17. The method of claim 16, wherein updating the routing information in the first process includes updating the routing information based upon at least one of server load, server availability, service availability, cache status, cluster status, and performance.
18. An apparatus, comprising:
at least one processor; and
program code configured to be executed by the processor to propagate routing information in a distributed computing system by tracking reroutes of client requests from a client that are routed according to routing information associated with the client and selectively initiating propagation of updated routing information for the client based upon the tracked reroutes of client requests.
19. The apparatus of claim 18, wherein the at least one processor, the program code and the routing information are resident in the client, and wherein the program code is further configured to route the client requests according to the routing information resident in the client.
20. The apparatus of claim 18, wherein the program code is configured to, for a first request, select one of a plurality of servers to handle the first request based upon the routing information and forward the first request to the selected server.
21. The apparatus of claim 18, wherein the program code is configured to selectively initiate propagation of the routing information for the client based upon the tracked reroutes of client requests by initiating propagation of the routing information for the client in response to a rerouting ratio meeting a propagation criteria.
22. The apparatus of claim 18, wherein the program code is configured to selectively initiate propagation of the routing information for the client based upon the tracked reroutes of client requests in response to receiving a response to a client request that indicates that the request needs to be rerouted.
23. The apparatus of claim 18, wherein the program code is configured to initiate propagation of the routing information to the client by requesting download of an updated copy of a routing table for the client.
24. The apparatus of claim 18, wherein the routing information associated with the client is updated in a first process that is separate from a second process that routes client requests according to the routing information, and wherein the program code is configured to initiate propagation of updated routing information for the client by retrieving updated routing information generated in the first process into the second process.
25. A program product, comprising:
program code configured to propagate routing information in a distributed computing system by tracking reroutes of client requests from a client that are routed according to routing information associated with the client and selectively initiating propagation of updated routing information for the client based upon the tracked reroutes of client requests; and
a non-transitory computer readable medium bearing the program code.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An information processing apparatus having an installation set including a driver program to be customized and an installer, comprising:
a specifying unit adapted to specify expansion print setting from print settings set in another driver program which is different from the driver program;
an obtaining unit adapted to obtain the expansion print setting specified by said specifying unit; and
a holding unit adapted to hold the expansion print setting obtained by said obtaining unit as the installation set.
2. An apparatus according to claim 1, wherein said specifying unit specifies print setting, as expansion print setting, defined separately from default print setting set in the other driver program.
3. An apparatus according to claim 1, wherein said specifying unit specifies print setting regarding a user defined sheet as expansion print setting.
4. An apparatus according to claim 1, wherein said specifying unit specifies favorite print setting, as expansion print setting, which is different from default print setting set in the other driver program and which has been registered after the installation of the other driver program.
5. An apparatus according to claim 1, wherein said specifying unit obtains the expansion print setting by using a programming interface which is called from a printer driver, and said holding unit holds the printer driver, as an installation set, in which the obtained expansion print setting has been set.
6. An information processing method in an information processing apparatus having an installation set including a driver program to be customized and an installer, comprising:
a specifying step of specifying expansion print setting from print settings set in the driver program which is different from the driver program;
an obtaining step of obtaining the expansion print setting specified in said specifying step; and
a holding step of holding the expansion print setting obtained in said obtaining step as the installation set.
7. A method according to claim 6, wherein in said specifying step, print setting defined separately from default print setting set in the other driver program is specified as expansion print setting.
8. A method according to claim 6, wherein in said specifying step, print setting regarding a user defined sheet is specified as expansion print setting.
9. A method according to claim 6, wherein in said specifying step, favorite print setting which is different from default print setting set in the other driver program and which has been registered after the installation of the other driver program is specified as expansion print setting.
10. A method according to claim 6, wherein in said specifying step, the expansion print setting is obtained by using a programming interface which is called from a printer driver, and in said holding step, the printer driver in which the obtained expansion print setting has been set is held as an installation set.
11. An information processing system having an installation set including a driver program to be customized and an installer, comprising:
a specifying unit adapted to specify expansion print setting from print settings set in the driver program which is different from the driver program;
an obtaining unit adapted to obtain the expansion print setting specified by said specifying unit; and
a holding unit adapted to hold the expansion print setting obtained by said obtaining unit into a specific area in the installation set,
wherein the installer included in the installation set installs the driver program included in the installation set in response to an executing instruction so that the driver program can recognize the expansion print setting.
12. A control program, stored in a computer-readable storage medium, for causing a computer to perform a method carried out in an information processing apparatus having an installation set including a driver program to be customized and an installer, the method comprising:
a specifying step of specifying expansion print setting from print settings set in the driver program which is different from the driver program;
an obtaining step of obtaining the expansion print setting specified in said specifying step; and
a holding step of holding the expansion print setting obtained in said obtaining step as the installation set.