Event queuing and distribution system
Abstract
A REST-based event distribution system is described, with particular applicability to the distribution of distributed filesystem notifications over a high-latency best-effort network such as the Internet. In one embodiment, event channels are mapped to URL spaces and created and distributed through the use of HTTP POST and GET requests. The system is optimized for short polling by clients; an event history is maintained to buffer messages and maintain the idempotence of requests. In another embodiment, the events are registered as a SIP event pack allowing for the distribution of filesystem events.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
1 . An event distribution system, the system comprising:
a server operable to receive a series of event notifications and generate one or more messages to a message-receiving client, the server further including:
a backing store configured to store a first event associated with a first channel identifier and to allow subsequent retrieval of the first event using the first channel identifier, wherein the first event is associated with a first event identifier;
a channel manager operable to receive one or more message subscription requests via a synchronous protocol and maintain an open channel associated with each message subscription request until such channel times out or is closed, and wherein a message subscription request includes a second event identifier, where the second event identifier corresponds to an event temporally prior to the first event identifier;
an event manager operable to receive the series of event notifications and evaluate whether to create a response corresponding to the event notification, to create a modified response, or to block the generation of a response;
a communications manager operable to generate one or more server-side event messages suitable for distribution on a channel;
wherein the generation of event messages is controlled by the evaluation by the event manager that a response or a modified response should be created,
wherein the server-side event message includes a unique event identifier.
2 . The event distribution system of claim 1 , wherein the synchronous protocol is one of HTTP, HTTPS, and SIP.
3 . The event distribution system of claim 1 , wherein the event messages suitable for distribution on a channel are in a format chosen from the group of a Javascript array, JSON, BSON, XML, HTML, and plain text.
4 . The event distribution system of claim 1 , wherein the channel identifier is a URI.
5 . The event distribution system of claim 1 , wherein the event manager uses the event filtering system to identify a set of essential parameters that characterize a request, the set of essential parameters including a channel identifier; and wherein every request including identical parameters returns an identical response via the communications manager.
6 . The event distribution system of claim 7 , wherein the set of essential parameters includes a temporal range; and wherein a request with identical parameters includes a request made within the defined temporal range.
7 . A method comprising:
at a server, receiving a series of message subscriptions, event notifications and generating one or more messages to a message-receiving client,
wherein receiving the series of message subscriptions includes receiving one or more message subscription requests via a synchronous protocol; and
maintaining an open channel associated with each message subscription request until such channel times out or is closed; and
retrieving from a message subscription request a first event identifier, the first event identifier internally corresponding to an event time;
wherein receiving a series of event notifications includes storing a plurality of event information in a backing store associated with a first channel identifier; and
evaluating for each of the event notifications, via a channel manager, whether to create a message corresponding to the event notification, to create a modified response, or to block the generation of a message; and
wherein generating one or more messages to a message-receiving client includes creating a server-side event message in a format suitable for sending on one or more open channels; and
wherein the server-side event message includes a unique event identifier.
8 . The method of claim 7 , further comprising sending the server-side event message via an open channel.
9 . The method of claim 8 , wherein sending the server-side event is done via a synchronous client-server protocol.
10 . The method of claim 8 , wherein sending the server-side event is done via one of HTTP, HTTPS, and SIP.
11 . The method of claim 7 , wherein the receiving an event notification includes receiving an event publishing request, wherein the event publishing request includes an event publishing verb and a subject, wherein the event publishing request is transmitted using one of HTTP and HTTPS, and wherein the event publishing verb is one of POST and PUT.
12 . The method of claim 7 , wherein the channel identifier is a URI.
13 . The method of claim 7 , wherein the server-side event message includes a representation of one or more events.
14 . The method of claim 7 , wherein the format suitable for sending on one or more open channels is selected from the group consisting of a Javascript array, JSON, BSON, XML, HTML, and plain text.
15 . The method of claim 7 , wherein each event notification corresponds to the generation of a server-side event message.
16 . The method of claim 7 , wherein a plurality of event notifications correspond to a single generated server-side event message.
17 . The method of claim 7 , wherein the message-receiving client is a web browser.Join the waitlist — get patent alerts
Track US2018007144A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.