Scalable proxy clusters
First Claim
1. A proxy node configured for implementation within a proxy cluster comprising a plurality of proxy nodes, the proxy node comprising:
- a proxy router configured to;
obtain, after receiving an Application Programming Interface (API) request from a client device, information descriptive of an API associated with the API request;
select a server that hosts the API from a plurality of servers based on (1) the information descriptive of the API and (2) data states indicative of characteristics of the plurality of servers;
transmit the API request to the API hosted on the server; and
in response to receiving a response to the API request from the server, transmit the response to the client device; and
a synchronization controller configured to respond to a synchronization event by synchronizing data states of the proxy node with data states of each remaining proxy node from the plurality of proxy nodes, the data states of the proxy node and the data states of each remaining proxy node from the plurality of proxy nodes including the data states indicative of the characteristics of the plurality of servers.
8 Assignments
0 Petitions
Accused Products
Abstract
The invention enables high-availability, high-scale, high security and disaster recovery for API computing, including in terms of capture of data traffic passing through proxies, routing communications between clients and servers, and load balancing and/or forwarding functions. The invention inter alia provides (i) a scalable cluster of proxies configured to route communications between clients and servers, without any single point of failure, (ii) proxy nodes configured for implementing the scalable cluster (iii) efficient methods of configuring the proxy cluster, (iv) natural resiliency of clusters and/or proxy nodes within a cluster, (v) methods for scaling of clusters, (vi) configurability of clusters to span multiple servers, multiple racks and multiple datacenters, thereby ensuring high availability and disaster recovery (vii) switching between proxies or between servers without loss of session.
84 Citations
15 Claims
-
1. A proxy node configured for implementation within a proxy cluster comprising a plurality of proxy nodes, the proxy node comprising:
-
a proxy router configured to; obtain, after receiving an Application Programming Interface (API) request from a client device, information descriptive of an API associated with the API request; select a server that hosts the API from a plurality of servers based on (1) the information descriptive of the API and (2) data states indicative of characteristics of the plurality of servers; transmit the API request to the API hosted on the server; and in response to receiving a response to the API request from the server, transmit the response to the client device; and a synchronization controller configured to respond to a synchronization event by synchronizing data states of the proxy node with data states of each remaining proxy node from the plurality of proxy nodes, the data states of the proxy node and the data states of each remaining proxy node from the plurality of proxy nodes including the data states indicative of the characteristics of the plurality of servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A proxy node configured for implementation within a proxy cluster comprising a plurality of proxy nodes, the proxy node including:
-
a proxy router configured to; receive an Application Programming Interface (API) request from a client device routed to the proxy node based on routing policies stored within a Domain Name System (DNS) server, the API request associated with an API; select a server that hosts the API from a plurality of servers based on (1) information descriptive of the API and (2) data states indicative of characteristics of the plurality of servers; and transmit the API request to the API hosted on the server; and a synchronization controller configured to synchronize data states of the proxy node with data states of each remaining proxy node from the plurality of proxy nodes such that the plurality of proxy nodes has common routing functionality. - View Dependent Claims (13)
-
-
14. A method of adding a proxy node to a proxy cluster to be included in a plurality of proxy nodes on a network, the method comprising:
-
connecting the proxy node to the network; in response to connecting the proxy node to the network, synchronizing, via at least one processor of the proxy node, data states of the proxy node with data states of each remaining proxy node from the plurality of proxy nodes such that the proxy node is configured to implement one or more routing policies identical to the remaining proxy nodes from the plurality of proxy nodes; receiving, at the at least one processor, an Application Programming Interface (API) request from a client device, the API request associated with an API; selecting, via the at least one processor, a server that hosts the API from a plurality of servers based on (1) information descriptive of the API and (2) data states indicative of characteristics of the plurality of servers; transmitting, via the at least one processor, the API request to the API hosted on the server; and receiving, at the at least one processor, a response to the API request from the server. - View Dependent Claims (15)
-
Specification