×

Delivery acknowledgment in event stream processing

  • US 10,102,028 B2
  • Filed: 08/02/2013
  • Issued: 10/16/2018
  • Est. Priority Date: 03/12/2013
  • Status: Active Grant
First Claim
Patent Images

1. A non-transitory computer-readable medium having stored thereon computer-readable instructions that when executed by a computing device cause the computing device to:

  • instantiate a continuous query that includes a source window to receive an event block object and a derived window connected to the source window to process the event block object received by the source window and to output the processed event block object to a plurality of subscribing clients;

    establish a first connection between a publishing device executing an event publishing application and an event publishing client;

    establish a second connection between the event publishing client and an event stream processing engine (ESPE) executing the instantiated continuous query, wherein the event publishing client sends the received event block object to the source window;

    establish a third connection between the ESPE and each of a plurality of subscribing clients;

    establish a fourth connection between each subscribing client of the plurality of subscribing clients and an associated subscribing device executing an event subscription application;

    establish a fifth connection between each subscribing client of the plurality of subscribing clients and the event publishing client, wherein the second connection differs from each filth connection, and each fifth connection is a direct connection that is not through the ESPE;

    receive, by the event publishing client, the event block object from the publishing device using the established first connection;

    publish the received event block object to the source window of the ESPE using the established second connection, wherein the event block object includes a unique identifier,perform, by the ESPE, a computation on a field extracted from the event block object based on the instantiated continuous query to define a processed event block object;

    output, by the ESPE, the defined, processed event block object to each subscribing client of the plurality of subscribing clients using the established third connection to each subscribing client, wherein the output event block object includes the unique identifier;

    send, by each subscribing client, the output event block object to the associated subscribing device using the established fourth connection;

    receive, by each subscribing client, an acknowledgement message from the associated subscribing device using the established fourth connection when the sent event block object is successfully processed by the associated subscribing device;

    send, by each subscribing client, a second acknowledgement message to the event publishing client using the established fifth connection when the acknowledgement message is received, wherein the second acknowledgement message includes the unique identifier;

    receive, by the event publishing client, each sent second acknowledgement message;

    for each received second acknowledgement message including the unique identifier, increment, by the event publishing client, a counter to determine a number of second acknowledgement messages received;

    compare, by the event publishing client, the number of second acknowledgement messages received to a specified number of acknowledged subscribers;

    based on the comparison and responsive to determining that the number of second acknowledgement messages received is less than the specified number of acknowledged subscribers, determine, by the event publishing client, if a timeout period has expired; and

    responsive to determining that the timeout period has expired, execute a failed callback function.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×