RESTlike API that supports a resilient and scalable distributed application
First Claim
Patent Images
1. A computing device comprising:
- a processor module; and
memory that comprises a proxy server for a unified communications (UC) application, wherein the proxy server, when executed by the processor module, is configured to perform acts comprising;
during a communication session, and responsive to receiving a request for a resource from a UC client executing on a client computing device that is in network communication with the computing device, identifying a UC server executing on a server computing device that is in network communication with the computing device, the request for the resource from the UC client comprises an application instance identifier (AID) for the client computing device and complies with a representational state transfer (REST) architecture, the AID based on an identity of the client computing device and an identity of a user of the client computing device, and further wherein the UC server is identified based upon the UC server previously servicing the UC client during the communication session, the AID in the request for the resource, and the AID being included in an entry in a registration database;
responsive to identifying the UC server, transmitting a second request for the resource to the UC server;
subsequent to transmitting the second request, determining that the UC server is noncommunicative; and
responsive to determining that the UC server is noncommunicative, transmitting a third request for the resource to a second server computing device that is in network communication with the computing device, wherein the second server computing device, responsive to receiving the third request, instantiates a second UC server, and further wherein the second UC server is configured to service the UC client during the communication session.
2 Assignments
0 Petitions
Accused Products
Abstract
An application distributed amongst plurality of computing devices leverages an application programming interface that conforms to a representational state transfer architecture in order to provide resilient services to clients and adapt to a change in availability of devices. A proxy server routes communications between clients and servers, detects when a server becomes unavailable, and reroutes communications to a replacement server. A registration database on the proxy server records entries for clients, such that communications can be routed to active devices of a user.
15 Citations
20 Claims
-
1. A computing device comprising:
-
a processor module; and memory that comprises a proxy server for a unified communications (UC) application, wherein the proxy server, when executed by the processor module, is configured to perform acts comprising; during a communication session, and responsive to receiving a request for a resource from a UC client executing on a client computing device that is in network communication with the computing device, identifying a UC server executing on a server computing device that is in network communication with the computing device, the request for the resource from the UC client comprises an application instance identifier (AID) for the client computing device and complies with a representational state transfer (REST) architecture, the AID based on an identity of the client computing device and an identity of a user of the client computing device, and further wherein the UC server is identified based upon the UC server previously servicing the UC client during the communication session, the AID in the request for the resource, and the AID being included in an entry in a registration database; responsive to identifying the UC server, transmitting a second request for the resource to the UC server; subsequent to transmitting the second request, determining that the UC server is noncommunicative; and responsive to determining that the UC server is noncommunicative, transmitting a third request for the resource to a second server computing device that is in network communication with the computing device, wherein the second server computing device, responsive to receiving the third request, instantiates a second UC server, and further wherein the second UC server is configured to service the UC client during the communication session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method performed by a server computing device that executes a proxy server of a unified communications (UC) application, the method comprising:
-
receiving, at the proxy server and during a communication session between a UC client executing on a computing device and a UC server executing on a server computing device, a request for a resource from the client computing device, the request for the resource comprises an application instance identifier (AID) for the client computing device and complies with a representational state transfer (REST) architecture, the AID based on an identity of the client computing device and an identity of a user of the client computing device, wherein the AID is included in an entry in a registration database; responsive to receiving the request, transmitting a second request for the resource to the server computing device; subsequent to transmitting the second request to the server computing device, determining that the UC server is uncommunicative; and responsive to determining that the UC server is uncommunicative, transmitting a third request for the resource to a second server computing device, wherein the second server computing device, responsive to receiving the third request, instantiates a second UC server, and further wherein the second UC server is configured to service the UC client during the communication session. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform acts comprising:
executing a proxy server in a distributed unified communications (UC) application, the proxy server supporting routing of communications between client computing devices in a pool of client computing devices and server computing devices in a pool of server computing devices, wherein executing the proxy server comprises; during a communication session between a UC client executing on a client computing device in the pool of client computing devices and a UC server executing on a server computing device in the pool of server computing devices, receiving a request for a resource from the client computing device, the request for the resource comprises an application instance identifier (AID) for the client computing device and complies with a representational state transfer (REST) architecture, the AID based on an identity of the client computing device and an identity of a user of the client computing device, wherein the AID is included in an entry in a registration database; determining that the server computing device is uncommunicative; responsive to determining that the server computing device is uncommunicative, identifying a second server computing device in the pool of server computing devices; transmitting data to the second server computing device that causes the second server computing device to instantiate second UC server, the second UC server being a reproduction of the UC server; and continuing the communication session, wherein the communication session, when continued, is between the UC client executing on the client computing device and the second UC server executing on the second server computing device. - View Dependent Claims (18, 19, 20)
Specification