Event queuing and distribution system
First Claim
Patent Images
1. An event distribution system, the system comprising:
- a server configured to respond to event requests via a synchronous client-server protocol, 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 communications module operable to receive event requests and send responses to the event requests, wherein the communications module receives from a client an event request including a second event identifier and an interval indicating a period in the past, wherein the first event was added to the first channel before a second event associated with the second event identifier was added to the first channel;
an event filtering system operable to evaluate, modify, and block event requests and responses, wherein in response to the event request, the event filtering system sends a response including one or more events satisfying the interval, wherein the one or more events includes the first event, but not the second event, and wherein the response includes one or more events that were added to the first channel since the second event was added to the first channel, wherein a third event was added to the first channel after the second event, and the response includes the third event; and
an event manager coordinating the use of the backing store, communications module, and event filtering system, wherein the event manager uses the event filtering system to block a recording of one or more first requests in the backing store and to block the sending of the one or more first requests via the communications module, wherein the first request is identical to the event request;
wherein the event requests represent interactions with a distributed filesystem storage system.
5 Assignments
0 Petitions
Accused Products
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.
-
Citations
17 Claims
-
1. An event distribution system, the system comprising:
a server configured to respond to event requests via a synchronous client-server protocol, 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 communications module operable to receive event requests and send responses to the event requests, wherein the communications module receives from a client an event request including a second event identifier and an interval indicating a period in the past, wherein the first event was added to the first channel before a second event associated with the second event identifier was added to the first channel; an event filtering system operable to evaluate, modify, and block event requests and responses, wherein in response to the event request, the event filtering system sends a response including one or more events satisfying the interval, wherein the one or more events includes the first event, but not the second event, and wherein the response includes one or more events that were added to the first channel since the second event was added to the first channel, wherein a third event was added to the first channel after the second event, and the response includes the third event; and an event manager coordinating the use of the backing store, communications module, and event filtering system, wherein the event manager uses the event filtering system to block a recording of one or more first requests in the backing store and to block the sending of the one or more first requests via the communications module, wherein the first request is identical to the event request; wherein the event requests represent interactions with a distributed filesystem storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method comprising:
-
storing in a backing store a first event associated with a first channel identifier, the backing store enabling subsequent retrieval of the first event using the first channel identifier, and the first event being associated with a first event identifier; receiving an event request including a second event identifier and an interval indicating a period in the past, the first event being added to the first channel before a second event associated with the second event identifier was added to the first channel; in response to the event request, sending a response including one or more events satisfying the interval, wherein the one or more events includes the first event, but not the second event, and wherein the response includes one or more events that were added to the first channel since the second event was added to the first channel, wherein a third event was added to the first channel after the second event, and the response includes the third event; blocking a recording of one or more first requests in the backing store, wherein the first request is identical to the event request; and blocking sending of the one or more first requests. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable medium comprising a plurality of machine-readable instructions that when executed by one or more processors are adapted to cause the one or more processors to perform a method comprising:
-
storing in a backing store a first event associated with a first channel identifier, the backing store enabling subsequent retrieval of the first event using the same first identifier, and the first event being associated with a first event identifier; receiving an event request including a second event identifier and an interval indicating a period in the past, the first event being added to the first channel before a second event associated with the second event identifier was added to the first channel; in response to the event request, sending a response including one or more events satisfying the interval, wherein the one or more events includes the first event, but not the second event, and wherein the response includes one or more events that were added to the first channel since the second event was added to the first channel, wherein a third event was added to the first channel after the second event, and the response includes the third event; blocking a recording of one or more first requests in the backing store, wherein the first request is identical to the event request; and blocking sending of the one or more first requests.
-
Specification