IP Library Granted Patent US 9,819,766
Granted Patent B1
US 9,819,766 · App. 14/446,769 · Granted Nov 14, 2017

System and method for improving infrastructure to infrastructure communications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,819,766
App. No.
14/446,769
Granted
Nov 14, 2017
Kind
B1
Abstract

Systems and methods are provided for improving communications between infrastructures using RPCs. An authoritative endpoint in a first infrastructure receives a registration request from a non-authoritative server in a second infrastructure through a transport layer on which a remote procedure call (RPC) layer depends. This request establishes a connection with the authoritative endpoint. The authoritative entity authenticates and registers the non-authoritative entity, and receives RPCs from client devices through the non-authoritative entity. The authoritative entity provides responses to the RPCs through the non-authoritative entity over the established connection. The authoritative entity also performed load-shedding operations, such as notifying the non-authoritative entity of a time to live of the connection. The RPC requests and responses sent over the connection may be chunked into frames, each frame identifying a stream to which it belongs.

Claims (35)

1. A method for establishing a connection, comprising:

receiving, at an authoritative entity in a first infrastructure, a registration request from a non-authoritative server in a second infrastructure, the request received through a transport layer on which a remote procedure call (RPC) layer depends, the request establishing connection with the authoritative entity;

authenticating, by the authoritative entity the non-authoritative server;

registering, at the authoritative entity, the non-authoritative server, wherein the registering comprises storing an identification of the non-authoritative server in a data structure listing registered non-authoritative entities;

receiving a RPC at the authoritative entity from a client device, the RPC served through the non-authoritative server;

determining, by the authoritative entity, whether the RPC was received from one of the registered non-authoritative entities in the data structure;

providing a response to the RPC when it is determined that the RPC was received from one of the registered non-authoritative entities;

notifying, by the authoritative entity, the non-authoritative server of an impending connection termination, wherein the notifying comprises indicating an amount of time left before the authoritative entity transitions into a given mode: and

serving, by the authoritative entity, only in-flight RPCs received through the non-authoritative server once the authoritative entity transitions into the given mode.

2. The method of claim 1 , wherein the connection established with the authoritative entity has a predetermined finite time to live (TTL).

3. The method of claim 2 , wherein notifying the non-authoritative server of the impending connection termination occurs when the predetermined finite TTL is reached.

4. The method of claim 1 , wherein providing the response to the RPC further comprises:

chunking the payload of the response into frames; and

transmitting the frames to the non-authoritative server over the established connection.

5. The method of claim 1 , wherein providing the response to the RPC comprises providing the response to the RPC to the non-authoritative server for further sending to the client devices.

6. A system, comprising:

an authoritative entity in a first infrastructure, the authoritative entity comprising:

a memory; and

one or more processors in communication with the memory, the one or more processors programmed to:

receive a registration request from a non-authoritative server in a second infrastructure, the request received through a transport layer on which a remote process communications (RPC) layer depends, the request establishing connection with the authoritative entity;

authenticate the non-authoritative server;

register the non-authoritative server, wherein the registering comprises storing an identification of the non-authoritative server in a data structure listing registered non-authoritative entities;

receive a RPC from a client device, the RPC served through the non-authoritative server;

determine whether the RPC was received from one of the registered non-authoritative entities in the data structure;

provide a response to the RPC when it is determined that the RPC was received from one of the registered non-authoritative entities;

notify the non-authoritative server of an impending connection termination, the notifying comprises indicating an amount of time left before the authoritative entity transitions into a given mode: and

serve only in-flight RPCs received through the non-authoritative server once the authoritative entity transitions into the given mode.

7. The system of claim 6 , wherein the one or more processors are further programmed tot

determine whether the connection established by the non-authoritative server will be terminated.

8. The system of claim 7 , wherein the connection established with the authoritative entity has a predetermined finite time to live (TTL).

9. The system of claim 8 , wherein notifying the non-authoritative server of the impending connection termination occurs when the predetermined finite TTL is reached.

10. The system of claim 6 , wherein in providing the response to the RPC, the one or more processors are further programmed to:

chunk the payload of the response into frames; and

transmit the frames to the non-authoritative server over the established connection.

11. The system of claim 6 , wherein in providing the response to the RPC the one or more processors are further programmed to provide the response to the RPC to the non-authoritative server for further sending to the client devices.

Assignments (2)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2014
From: NIRODI, GAUTAM SURESH; COLLINS, MICHAEL; MEYERS, STEPHEN ANTHONY
To: GOOGLE INC.
Reel/Frame 033431/0475 →