Using side channels in remote procedure calls to return information in an interactive environment
First Claim
1. A computer-implemented method for exchanging information in a distributed computing system implementing a location-based parallel reality game, the method comprising:
- receiving, by a server from a client device, a request to invoke a service at the server, the request initiated by a first process executing on the client device and initiated using a protocol supporting a single return result returned to the first process in response to the request;
processing, by the server, the request to generate a return result for the request;
populating, by the server, a side channel class to instantiate a side channel data object, the side channel data object comprising one or more updates with information about a current status of the location-based parallel reality game, wherein an update from the one or more updates comprises at least one of;
a state of a game board, consequences to a player of a current action, consequences to the player of actions by other players, consequences to the player of actions by the server, messages intended for the player, or information about game objects that are no longer present;
wrapping, by the server, the return result and the side channel class data object in a return result data object, the return result data object comprising the return result destined for the first process and the side channel data object destined for a second process of the client device; and
transmitting, by the server to the client device, the return result data object as a response to the request.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for exchanging information in a distributed computing system implementing an interactive application, such as a location-based parallel reality game, are provided. In particular, the subject matter of the present disclosure provides an alternative approach for providing and processing return results from a remote procedure call (RPC) by which remote computing systems (e.g. a game server and a remote client) send requests and responses to one another. Rather than providing a single return result in response to a single request as in typical remote procedure calls, information about updates to the state of the interactive application, such as updates to game status, can be returned via side channels which are handled generically while passing the main return result of the invoked service directly back to the caller.
-
Citations
12 Claims
-
1. A computer-implemented method for exchanging information in a distributed computing system implementing a location-based parallel reality game, the method comprising:
-
receiving, by a server from a client device, a request to invoke a service at the server, the request initiated by a first process executing on the client device and initiated using a protocol supporting a single return result returned to the first process in response to the request; processing, by the server, the request to generate a return result for the request; populating, by the server, a side channel class to instantiate a side channel data object, the side channel data object comprising one or more updates with information about a current status of the location-based parallel reality game, wherein an update from the one or more updates comprises at least one of;
a state of a game board, consequences to a player of a current action, consequences to the player of actions by other players, consequences to the player of actions by the server, messages intended for the player, or information about game objects that are no longer present;wrapping, by the server, the return result and the side channel class data object in a return result data object, the return result data object comprising the return result destined for the first process and the side channel data object destined for a second process of the client device; and transmitting, by the server to the client device, the return result data object as a response to the request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A server for implementing a location-based parallel reality game, the server comprising:
-
one or more processors; and non-transitory computer-readable storage media having executable instruction which when executed by the one or more processors cause the one or more processors to perform operations comprising; receiving a request to invoke a service at the server, the request initiated by a first process executing on the client device and initiated using a protocol supporting a single return result returned to the first process in response to the request; processing the request to generate a return result for the request; populating a side channel class to instantiate a side channel data object, the side channel data object comprising one or more updates with information about a current status of the location-based parallel reality game, wherein an update from the one or more updates comprises at least one of;
a state of a game board, consequences to a player of a current action, consequences to the player of actions by other players, consequences to the player of actions by the server, messages intended for the player, or information about game objects that are no longer present;wrapping the return result and the side channel class data object in a return result data object for responding to the request, the return result data object comprising the return result destined for the first process and the side channel data object destined for a second process of the client device; and transmitting to the client device the return result data object as a response to the request. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A tangible, non-transitory computer-readable medium storing computer-readable instructions that when executed by one or more processors cause the one or more processors to perform operations comprising:
-
transmitting, by a computing device to a remote server, a request to invoke a service at the remote server, the request initiated by a first process executing on the computing device and initiated using a protocol supporting a single return result returned to the first process in response to the request; receiving, by the computing device from the remote server, a return result data object as a response to the request; identifying, by the computing device, a return result and a side channel data object included in the return result data object, the return result generated by the remote server for the request, the side channel data object comprising one or more updates with information about a current status of a location-based parallel reality game, wherein an update from the one or more updates comprises at least one of;
a state of a game board, consequences to a player of a current action, consequences to the player of actions by other players, consequences to the player of actions by the server, messages intended for the player, or information about game objects that are no longer present;providing, by the computing device, the return result to the first process; and providing, by the computing device, the side channel data object to a second process of the computing device.
-
Specification