Stream processing utilizing virtual processing agents

US2016014175A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016014175-A1
Application numberUS-201414326239-A
CountryUS
Kind codeA1
Filing dateJul 8, 2014
Priority dateJul 8, 2014
Publication dateJan 14, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • G06F9/542Primary

    Event management; Broadcasting; Multicasting; Notifications · CPC title

  • H04L65/60Primary

    Network streaming of media packets · CPC title

  • for watching a game played by other players · CPC title

  • to service a request · CPC title

  • Providing additional services to players · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016014175A1 cover?
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 virtu…
Who is the assignee on this patent?
Microsoft Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/542. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 14 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).