Systems and methods for event routing and correlation
AssigneeAvaya Inc.
InventorsRobert E. Braudes, Kurt Haserodt, Robert J. Favero
Life of this patent
Estimating the term…
Abstract
A collaboration environment provides a generic event distributing framework that can distribute both synchronous and asynchronous events. The distributed events may be pre-defined or dynamically defined. Further, the framework can support multiple data formats for the event payload. The collaboration environment relies on two separate APIs to separate event producers from event consumers.
Claims13
A method for providing an event in a collaboration environment, the method comprising:
- a first application programming interface (API), executed by a processor:
- receiving a communication from a first device associated with the event from a producer;
- translating the event from a first language into a general language;
- sending the event to a collaboration bus;
- the processor:
- determining if a first listener has subscribed to the event by identifying a subscription to the event;
- providing an indication to a second API as to whether the first listener has subscribed to the event;
- retrieving a list of synchronous listeners, wherein the list includes at least the first listener and a second listener, wherein each listener in the list receives the event in an order provided by the list;
- if the first listener has subscribed to the event and if the event is synchronous:
- the second API, executed by the processor:
- receiving the event from the collaboration bus;
- receiving the indication from the processor as to whether the first listener has subscribed to the event;
- if the first listener has subscribed to the event, translating the event from the general language into a second language;
- sending the event to a second device associated with the first listener;
- receiving a first response from the first listener, wherein the first response includes a change to the event;
- incorporating the change into the event;
- and
- the processor:
- sending the event with the incorporated change to the second listener;
- determining if the event is synchronous;
- and
- if a third listener indicates that the third listener wants to receive the event asynchronously, sending the event to the third listener as an asynchronous event.
A collaboration environment comprising:
- a memory;
- a processor in communication with the memory, the processor operable to execute:
- a first application programming interface (API), the first API operable to:
- receive an event from a producer;
- translate the event from a first language into a general language;
- send the event to a collaboration bus;
- a subscriber services module operable to:
- determine if a first listener has subscribed to the event by identifying a subscription to the event;
- provide an indication to the second API as to whether the first listener has subscribed to the event;
- a second API operable to:
- retrieve a list of synchronous listeners, wherein the list includes at least the first listener and a second listener, wherein each listener in the list receives the event in an order provided by the list;
- receive the event from the collaboration bus;
- receive the indication from the subscriber services module as to whether the first listener has subscribed to the event;
- if the first listener has subscribed to the event, translate the event from the general language into a second language;
- send the event to the first listener;
- receive a first response from the first listener, wherein the first response includes a change to the event;
- incorporate the change into the event;
- send the event with the incorporated change to the second listener;
- determine if the event is synchronous;
- and
- if a third listener indicates that the third listener wants to receive the event asynchronously, send the event to the third listener as an asynchronous event.
A non-transitory computer readable medium having stored thereon processor executable instructions that cause a computing system to execute a method, the instructions comprising:
- instructions to execute a first application programming interface (API), the first API comprising:
- instructions to receive an event from a producer;
- instructions to translate the event from a first language into a general language;
- instructions to send the event to a collaboration bus;
- instructions to execute a subscriber services module, the subscriber services module comprising:
- instructions to receive a subscription to an event from a first listener;
- instructions to determine if the first listener has subscribed to the event by identifying the subscription to the event;
- instructions to provide an indication to a second API as to whether the first listener has subscribed to the event;
- instructions to execute the second API, the second API comprising:
- instructions to retrieve a list of synchronous listeners, wherein the list includes at least the first listener and a second listener, wherein each listener in the list receives the event in an order provided by the list;
- instructions to receive the event from the collaboration bus;
- instructions to receive the indication from the subscriber services module as to whether the first listener has subscribed to the event;
- if the first listener has subscribed to the event, instructions to translate the event from the general language into a second language;
- instructions to send the event to the first listener;
- instructions to receive a first response from the first listener, wherein the first response includes a change to the event;
- instructions to incorporate the change into the event;
- instructions to send the event with the incorporated change to the second listener
- instructions to determine if the event is synchronous;
- and
- if a third listener indicates that the third listener wants to receive the event asynchronously, instructions to send the event to the third listener as an asynchronous event.
Dependencies are inferred from the claim text.