Stream processing utilizing virtual processing agents
First Claim
1. A computer-implemented method for delivering events to a processing agent executing on one or more servers, the method comprising:
- receiving a publication of an event in a queue of events, wherein the event includes information that describes a player interaction with a game application;
mapping the event to a processing agent of a plurality of different processing agents, wherein the processing agent has not explicitly subscribed to receive the event;
determining that the processing agent is not activated;
in response to determining that the processing agent is not activated, activating the processing agent such that the processing agent is available to provide functionality to the game application;
delivering the event to the processing agent;
receiving a subscription from the processing agent;
receiving one or more additional publications of one or more additional events in the queue of events, the one or more additional events occurring after the subscription is received from the processing agent;
delivering, based at least in part on the subscription, the one or more additional events to the processing agent;
determining that the subscription requests that one or more past events be delivered, the one or more past events having been published in the queue of events prior to the receiving the subscription from the processing agent; and
in response to determining that the subscription requests that the one or more past events be delivered, delivering the one or more past events to the processing agent.
2 Assignments
0 Petitions
Accused Products
Abstract
Technologies are described herein for event delivery and stream processing utilizing virtual processing agents. Upon receiving an event publication in a queue, a runtime system identifies one or more virtual processing agents that might be interested in, but have not explicitly subscribed to, the published event. Event information of the published event is then delivered to the identified virtual processing agents. Prior to the actual delivery, the runtime system further determines if the virtual processing agents have been activated and activates those processing agents that have not been activated. Based on the received event information, some of the virtual processing agents might decide to explicitly submit subscriptions to receive more events from the queue. The explicit subscriptions will trigger the runtime system to deliver the subscribed events to the processing agents, which might include past events that have been published in the queue before the explicit subscription is received.
57 Citations
20 Claims
-
1. A computer-implemented method for delivering events to a processing agent executing on one or more servers, the method comprising:
-
receiving a publication of an event in a queue of events, wherein the event includes information that describes a player interaction with a game application; mapping the event to a processing agent of a plurality of different processing agents, wherein the processing agent has not explicitly subscribed to receive the event; determining that the processing agent is not activated; in response to determining that the processing agent is not activated, activating the processing agent such that the processing agent is available to provide functionality to the game application; delivering the event to the processing agent; receiving a subscription from the processing agent; receiving one or more additional publications of one or more additional events in the queue of events, the one or more additional events occurring after the subscription is received from the processing agent; delivering, based at least in part on the subscription, the one or more additional events to the processing agent; determining that the subscription requests that one or more past events be delivered, the one or more past events having been published in the queue of events prior to the receiving the subscription from the processing agent; and in response to determining that the subscription requests that the one or more past events be delivered, delivering the one or more past events to the processing agent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system, comprising one or more computing devices having instructions that, when executed by one or more processors, configure the one or more computing devices to:
-
manage a queue for receiving and persisting publications of events, wherein an individual event includes information that describes a player interaction with a game application; receive a publication of an event in a virtual stream; forward the publication of the event to the queue; map the event to a processing agent of a plurality of different processing agents, wherein the processing agent has not explicitly subscribed to receive the event and the processing agent is addressable for delivering the event independent of whether the processing agent is activated or not activated; determine that the processing agent is not activated; in response to determining that the processing agent is not activated, activate the processing agent such that the processing agent is available to provide functionality to the game application; deliver the event to the processing agent; receive an explicit subscription to the virtual stream from the processing agent after the event is delivered to the processing agent; receive one or more additional publications of one or more additional events in the virtual stream after the explicit subscription is received; forward the one or more additional publications of the one or more additional events to the queue; deliver, based at least in part on the explicit subscription, the one or more additional events to the processing agent; determine that past events have been published in the queue before the explicit subscription is received; retrieve the past events that have been published in the queue; and deliver the past events to the processing agent. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A system comprising:
-
one or more processors; and one or more computer-readable storage media having computer-executable instructions stored thereon which, when executed by the one or more processors, cause the system to; receive a publication of an event in a queue of events, wherein the event includes information that describes a player interaction with a game application; map the event to a processing agent of a plurality of different processing agents, wherein the processing agent has not explicitly subscribed to receive the event; determine that the processing agent is not activated; in response to determining that the processing agent is not activated, activate the processing agent such that the processing agent is available to provide functionality to the game application; deliver the event to the processing agent; receive a subscription from the processing agent; receive one or more additional publications of one or more additional events in the queue of events, the one or more additional events occurring after the subscription is received from the processing agent; deliver, based at least in part on the subscription, the one or more additional events to the processing agent; determine that the subscription requests that one or more past events be delivered, the one or more past events having been published in the queue of events prior to the receiving the subscription from the processing agent; and in response to determining that the subscription requests that the one or more past events be delivered, deliver the one or more past events to the processing agent. - View Dependent Claims (18, 19, 20)
-
Specification