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 an event associated with a first channel identifier and to allow subsequent retrieval of the event using the same channel identifier;
a communications module operable to receive event requests and send responses;
an event filtering system operable to evaluate, modify, and block event requests and responses; and
an event manager coordinating the use of the backing store, communications module, and event filtering system;
wherein the event requests represent interactions with a distributed filesystem storage system.
4 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.
104 Citations
20 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 an event associated with a first channel identifier and to allow subsequent retrieval of the event using the same channel identifier; a communications module operable to receive event requests and send responses; an event filtering system operable to evaluate, modify, and block event requests and responses; and an event manager coordinating the use of the backing store, communications module, and event filtering system; wherein the event requests represent interactions with a distributed filesystem storage system. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
receiving at a server an event publishing request, the event publishing request including an event publishing verb and a first subject, wherein the verb describes the requested publishing action, and wherein the first subject includes a first event, the event further including a first channel identifier, a first resource identifier and a first associated action; receiving a first event notification request, the first event notification request including the first channel identifier; performing at the server a first filtering operation to obtain a first filtering result; if indicated by the first filtering result, sending a first response, the first response including a representation of the first event, the representation of the first event including the first resource identifier and a representation of the first associated action; receiving a second event notification request, the second event notification request including the first channel identifier; performing at the server a second filtering operation to obtain a second filtering result; if indicated by the second filtering result, sending a second response including a representation of the first event, wherein the representation of the first event in the second response is substantially identical to the first response; wherein the resource identifier is representative of a filesystem object, and the first associated action describes an interaction with the filesystem object. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A non-transient computer readable medium containing executable instructions, which
when executed on a processor: -
receive at a server a request formatted according to a client-server protocol, the request addressed to a channel identifier and including a set of parameters; evaluate the parameters to determine a response, wherein; in a first possible response, the parameters are interpreted to define a new event, and the executable instructions are operable to store a representation of the event parameters on a computer-readable medium and return a response indicating successful storage of the event; in a second possible response, the parameters are interpreted to refer to an existing event, and the executable instructions are operable to load a representation of the existing event, and include a representation of the event in a response; in a third possible response, the parameters are interpreted to refer to an nonexisting event, and the executable instructions are operable to send an empty response; wherein the event parameters are name a filesystem object and an action associated with the named filesystem object. - View Dependent Claims (17, 18, 19, 20)
-
Specification