Subscriptions to paid channels of an internet-based content platform
US-9509798-B1 · Nov 29, 2016 · US
US2016014175A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016014175-A1 |
| Application number | US-201414326239-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jul 8, 2014 |
| Priority date | Jul 8, 2014 |
| Publication date | Jan 14, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 1 . A computer-implemented method for delivering events, the method comprising: receiving a publication of an event; identifying a processing agent for receiving information associated with the event based on configurations of the processing agent, wherein the processing agent does not explicitly subscribe to receive the event; determining if the processing agent is activated; in response to determining that the processing agent is not activated, activating the processing agent; delivering the information associated with the event to the processing agent; receiving a subscription to one or more events from the processing agent; and delivering the one or more events to the processing agent. 2 . The method of claim 1 , further comprising: determining if the subscription specifies one or more past events to be delivered; and in response to determining that the subscription specifies one or more past events to be delivered, delivering the one or more past events to the processing agent. 3 . The method of claim 1 , wherein receiving the publication of the event in the queue comprises: receiving a request to publish the event in a queue; activating a virtual stream corresponding to the event; and publishing the event in the queue through the virtual stream. 4 . The method of claim 1 , wherein the subscription to one or more events defines a virtual stream, and the subscription is a subscription to the virtual stream corresponding to the one or more events. 5 . The method of claim 4 , wherein activating the processing agent comprises allocating system resources to the processing agent, and wherein the subscription to the virtual stream activates the virtual stream and causes system resources to be allocated to the virtual stream. 6 . The method of claim 5 , further comprising: deactivating the virtual stream when no events are received in the virtual stream over a certain period of time by reclaiming the system resources allocated to the virtual stream; and deactivating the processing agent when the processing agent becomes idle for a given period of time by reclaiming the system resources allocated to the processing agent. 7 . The method of claim 1 , wherein the configuration of the processing agent is obtained programmatically or determined from a declarative definition of the processing agent. 8 . The method of claim 1 , wherein the processing agent is addressable for delivering the event independent of whether the processing agent is activated or not activated. 9 . A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to: determine a processing agent for receiving an event that is published in a queue and that the processing agent does not explicitly subscribe to, wherein the event is published in the queue through a first virtual stream corresponding to the event; determine if the processing agent is activated; in response to determining that the processing agent is not activated, activate the processing agent; cause event information of the event to be delivered to the processing agent; process an explicit subscription to a second virtual stream defined by the explicit subscription, wherein the explicit subscription is submitted by the processing agent in response to the event information delivered to the processing agent; and cause events in the second virtual stream to be delivered to the processing agent. 10 . The computer-readable storage medium of claim 9 , wherein events published in the queue are persisted. 11 . The computer-readable storage medium of claim 10 , comprising further computer executable instructions which, when executed by the computer, cause the computer to: determine if the second virtual stream includes past events published in the queue; and in response to determining that the second virtual stream includes past events published in the queue, cause the past events to be pushed to the second virtual stream and delivered to the processing agent. 12 . The computer-readable storage medium of claim 9 , comprising further computer executable instructions which, when executed by the computer, cause the computer to: deactivate the second virtual stream when no events are received in the second virtual stream over a certain period of time by reclaiming the system resources allocated to the second virtual stream; and deactivate the processing agent when the processing agent becomes idle for a given period of time by reclaiming the system resources allocated to the processing agent. 13 . The computer-readable storage medium of claim 9 , wherein activating the processing agent comprises allocating system resources to the processing agent, and wherein the subscription to the second virtual stream activates the second virtual stream and causes system resources to be allocated to the second virtual stream. 14 . The computer-readable storage medium of claim 9 , wherein the processing agent is addressable for delivering the event independent of whether the processing agent is activated or not activated. 15 . The computer-readable storage medium of claim 9 , wherein the processing agent is obtained programmatically or determined based on a declarative definition of the processing agent. 16 . A system, comprising one or more computing devices executing a runtime that is configured to: manage a queue for receiving and persisting publications of events; receive a publication of an event in a first virtual stream and forward the publication of the event to the queue; identify a processing agent for delivering event information of the event based on a configuration of the processing agent, wherein the processing agent does not explicitly subscribe to receive the event and is addressable for delivering the event information independent of whether the processing agent is activated or not activated; determine if the processing agent is activated; in response to determining that the processing agent is not activated, activate the processing agent; deliver the event information to the processing agent; receive an explicit subscription to events in a second virtual stream from the processing agent after the event information is delivered to the processing agent; determine whether the explicit subscription specifies past events published in the queue before the explicit subscription is received; in response to determining that the explicit subscription specifies past events, retrieve a past event from the past events published in the queue and push the past events to the second virtual streams, and deliver the events in the second virtual stream to the processing agent. 17 . The system of claim 16 , wherein activating the processing agent comprises allocating system resources to the processing agent, and wherein the subscription to the second virtual stream activates the second virtual stream and causes system resources to be allocated to the second virtual stream. 18 . The system of claim 16 , further comprising a plurality of servers executing one or more processing agents, wherein the runtime is further configured to recover a processing agent after failure of one server on which the processing agent was activated by reactivating the processing agent on another server. 19 . The system of claim 16 , wherein the configuration of the processing agent is obtained programmatically or determined from a declarative definition of the processing agent.
Related publications grouped by family.
Answers are generated from the same data shown on this page.