System and method for routing service requests
First Claim
Patent Images
1. A computer-implemented method of routing service requests to services in a service framework provided by a plurality of hosts, comprising:
- receiving a service request for a service in the service framework;
discovering a plurality of candidate hosts that host the service, the plurality of candidate hosts being a subset of the plurality of hosts;
acquiring information about measured latencies for each of the plurality of candidate hosts;
assigning weightings for the plurality of candidate hosts based on the measured latencies for each of the plurality of candidate hosts;
pseudo-randomly selecting a candidate host from the plurality of candidate hosts based on the measured latencies for the plurality of candidate hosts in accordance with the weightings for the plurality of candidate hosts; and
routing the service request to the selected candidate host.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer-implemented method routes service requests to services in a service framework provided by a plurality of hosts. The method comprises receiving a service request for a service in the service framework and discovering a plurality of candidate hosts that host the service. The plurality of candidate hosts are a subset of the plurality of hosts. The method further comprises selecting a candidate host from the plurality of candidate hosts based on measured latencies for the plurality of candidate hosts and routing the service request to the selected candidate host.
91 Citations
37 Claims
-
1. A computer-implemented method of routing service requests to services in a service framework provided by a plurality of hosts, comprising:
-
receiving a service request for a service in the service framework; discovering a plurality of candidate hosts that host the service, the plurality of candidate hosts being a subset of the plurality of hosts; acquiring information about measured latencies for each of the plurality of candidate hosts; assigning weightings for the plurality of candidate hosts based on the measured latencies for each of the plurality of candidate hosts; pseudo-randomly selecting a candidate host from the plurality of candidate hosts based on the measured latencies for the plurality of candidate hosts in accordance with the weightings for the plurality of candidate hosts; and routing the service request to the selected candidate host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method of routing service requests to services in a service framework comprising a plurality of service hosts, the method comprising:
-
storing a model of the service framework organized in a hierarchy comprising; a first level including a plurality of leaf nodes, each of the leaf nodes corresponding to one of the plurality of service hosts, and a second level including a first plurality of zones, wherein each of the first plurality of zones comprise a subset of the plurality of leaf nodes, and wherein each of the first plurality of zones includes a proxy host of the plurality of leaf nodes; and receiving service requests and, for each service request; discovering a plurality of candidate hosts from the leaf nodes and proxy hosts that host the service; pseudo-randomly selecting one of the plurality of candidate hosts based on measured latencies for the plurality of candidate hosts; and routing the service request to the selected candidate host. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A system comprising:
-
a plurality of host computers in a service framework for responding to service requests, wherein the plurality of hosts computers in the service framework are organized in a hierarchy comprising; a first level including a plurality of leaf nodes, each of the leaf nodes corresponding to one of the plurality of hosts; and a second level including a first plurality of zones which each comprise a subset of the plurality of leaf nodes; a plurality of services executing on the plurality of host computers; routing logic executing on the plurality of host computers, wherein the routing logic is configured to; determine whether a service request can be processed locally on the host computer upon which the routing logic is executing; process the service request locally on the host computer upon which the routing logic is executing if the service request can be processed locally; and dispatch service requests based on measured latencies between different levels in the hierarchy tree structure. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A tangible computer-accessible medium bearing computer-executable instructions which, when executed on a host computer in a computing system implementing a service framework comprising a plurality of host computers organized in a hierarchy for responding to service requests, direct the computing system to:
-
receive a service request for a service; discover a set of candidate host computers that host the service, the set of candidate host computers being a subset of the plurality of host computers; pseudo-randomly select a candidate host computer from the set of candidate host computers, the selection of the candidate host computer comprising a selection of a dispatch level within the hierarchy; and route the service request to the selected candidate host computer. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
Specification