Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This office action is in response to Applicant’s amendment filed on 06/25/2026. Claim 8 has previously been cancelled. Claims 1, 9, and 14 have been amended. Claim 21 has been added. Therefore, Claims 1-7 and 9-21 are pending. Any examiner’s note, objection, or rejection not repeated is withdrawn due to Applicant’s amendment.
Examiner’s Note
In paragraph [0015] of the original disclosure, it states that “A computer readable storage medium, as that term is used in the present disclosure, is not to be construed as storage in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through a fiber optic cable, electrical signals communicated through a wire, and/or other transmission media.” Therefore, examiner interprets “a computer-readable storage medium” recited in Claim 14 as excluding signals and/or carrier waves; therefore, Claim 14 and its dependent claims are eligible under 35 U.S.C. 101.
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 06/25/2026 has been entered.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-7 and 9-21 are rejected under 35 U.S.C. 103 as being unpatentable over Ferstay et. al (US 10908977 B1) in view of Tiwari et al. (US 11134019 B1), further in view of Nikolov (US 7519669 B2), further in view of Kawai (US 20120148267 A1), and further in view of Kahn et al. (US 20090249419 A1 ) hereinafter referred to as Ferstay, Tiwari, Nikolov, Kawai, and Kahn respectively.
Regarding Claim 1, Ferstay discloses A computer-implemented method for dynamically controlling message expiry in a message queue (Col. 54, Lines 45-58-In implementation, to facilitate message redelivery, a queue topic may be used to hold messages or tasks to process and a markers topic may be used to hold markers indicating processing states associated with messages or tasks. […] upon expiration of a redelivery deadline (or refreshed redelivery deadline) and when an end state for a task has not been achieved, message redelivery may occur. Please note that an implementation where a queue topic is used to hold messages to process, with associated expiration of a redelivery deadline, corresponds to Applicant’s computer-implemented method for dynamically controlling message expiry in a message queue.), the computer-implemented method comprising:
tracking, by a computer, a message located in the message queue that has an expiry value and a dynamic expiry value set in a header of the message by the producer of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a producer writing markers indicating the processing state to the markers topic 2330 and a marker having a configurable expiry time on a per-message basis corresponds to Applicant’s tracking a message located in the message queue that has an expiry value and a dynamic expiry value set by a message producer in a header of the message, as the markers and markers topic 2330 correspond to the header of the message, and define these values set by the message producer writing the markers.);
determining, by the computer, that the message is eligible for extension of the expiry value based on the dynamic expiry value being set to a particular value (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that determining that a particular marker, associated with a message, allows for extension of the expiration deadline via a keep-alive marker being received corresponds to determining that the message is eligible for extension of the expiry value based on the dynamic expiry value being set to a particular value, as when the particular keep-alive value is received, the expiry value of the deadline is able to be extended.);
and extending, by the computer, the expiry value of the message to form an extended expiry value in response to determining that the message is likely to expire in the message queue (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline associated with a message once the deadline is near expiration in the queue when the keep-alive marker for the message is received corresponds to Applicant’s extending the expiry value of the message to form an extended expiry value in response to determining that the message is likely to expire in the message queue.)
Ferstay does not explicitly disclose determining, by the computer, an amount of time before a message consumer can process the message;
prior to the message consumer processing the message based on the plurality of factors.
However, Tiwari discloses determining, by the computer, an amount of time before a message consumer can process the message (Col. 5, Lines 32-45-In an embodiment, the dispatch function 106 determines the amount of time that it takes for a software container, such as a message consumption function 110, to process a message from the message queue 108. In an embodiment, to determine the amount of time that it takes for a message consumption function 110 to process a message from the message queue 108, the dispatch function 106 invokes a message consumption function 110 and monitors this message consumption function 110 as it processes messages from the message queue. Through the monitoring of the message consumption function 110, the dispatch function 106 identifies the amount of time that it takes for a message consumption function 110 to process a message. Please note that the dispatch function 106 determining the amount of time it takes for message consumption function 110 to process a message from message queue 108 by monitoring the amount of time it takes for it to process a message corresponds to Applicant’s determining an amount of time before a message consumer can process the message.);
prior to the message consumer processing the message based on the plurality of factors (Col. 3, Lines 49-53-the next set of message consumption functions invoked by another dispatch function will contribute to consumption of messages from the message queue as the previously invoked set of message consumption functions expire. Please note that since the messages are consumed from the queue as the previous set of message consumption functions expire, a message that has been extended as disclosed by Ferstay would be extended prior to being processed by the consumer, corresponding to doing so prior to the message consumer processing the message based on the plurality of factors.).
Ferstay and Tiwari are both considered to be analogous to the claimed invention because they are in the same field of computer message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay to incorporate the teachings of Tiwari to modify the system tracking dynamic expiration values of messages in a message queue and determining their eligibility to be extended to determine the amount of time before a message consumer can process the message, allowing for improved system efficiency by improving scaling in response to changing message consumption rates, as described in Tiwari.
Ferstay-Tiwari does not explicitly disclose based on a plurality of factors that includes number of messages in the message queue, position of each respective message within the message queue, number of messages processed per second by the message consumer, average size of messages in the message queue, put and get rates in and out of the message queue, and set priority level of each respective message in the message queue,
However, Nikolov discloses based on a plurality of factors that includes number of messages in the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the messages sorted by identifiable pCounters in the master queue of messages corresponds to Applicant’s number of messages in the message queue, as one of ordinary skill in the art would be able to identify the number of messages in the message queue by counting the number of pCounters in the queue that are each associated with a distinct message in the message queue.),
position of each respective message within the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the position of the message upon insertion in the master queue of messages corresponds to Applicant’s position of each respective message within the message queue.),
number of messages processed per second by the message consumer (Col. 33, Lines 14-17- prioritizes the receiving threads and the delivery thread, such that the amount of messages received and the amount of messages delivered within a given time unit are relatively equivalent. Please note that the amount of messages received in a given time unit corresponds to Applicant’s number of messages processed per second by the message consumer. ),
average size of messages in the message queue (Col. 18, Lines 39-49- messages that exceed a certain size limit are considered "big" messages and undergo a special treatment in order to save memory. […] When adding a message to the master queue, this size limit is checked and, if exceeded, the message's body is cleared. The message header and properties, however, remain in memory to allow the message selector to operate. Please note that the size limit for messages being checked to see if they exceed a certain size limit when adding them to the master queue corresponds to Applicant’s average size of messages in the message queue, as it would be obvious to one of ordinary skill in the art to utilize the average size of messages in the message queue as a measure by which to determine if new messages exceed a certain size limit to be considered “big.”),
put and get rates in and out of the message queue (Col. 32, Lines 61-65- configuring priorities of the receiving threads and the delivery thread such that a receiving rate of messages from the producers is relatively equivalent to a delivery rate of messages delivered to the subscribers. Please note that the receiving rate of messages from the producers and the delivery rate of messages delivered to the subscribers correspond to Applicant’s put and get rates in and out of the message queue. ),
and set priority level of each respective message in the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the pCounter ordering criterion showing the priority of the message in the master queue of messages corresponds to Applicant’s set priority level of each respective message within the message queue.),
Ferstay-Tiwari and Nikolov are both considered to be analogous to the claimed invention because they are in the same field of computer message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari to incorporate the teachings of Nikolov to modify the system tracking dynamic expiration values of messages in a message queue and determining their eligibility to be extended to determine the amount of time before a message consumer can process the message to determine an amount of time before a message consumer can process the message based on a plurality of factors as stated above, allowing for improved system efficiency by improving message distribution responsive to changing factors of the message queue, as described in Nikolov.
Ferstay-Tiwari-Nikolov does not explicitly disclose standard deviation corresponding to the message consumer at this point in time
However, Kawai discloses standard deviation corresponding to the message consumer at this point in time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that the calculated standard deviation of the consumption rate, where the consumption rate is the amount consumed per unit of time, corresponds to Applicant’s standard deviation corresponding to the message consumer at this point in time.);
Ferstay-Tiwari-Nikolov and Kawai are both considered to be analogous to the claimed invention because they are in the same field of computer-based resource consumption rate tracking. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari-Nikolov to incorporate the teachings of Kawai to modify the system as previously described to include the standard deviation corresponding to the message consumer at this point in time as one of the factors in the determination of an amount of time before a message consumer can process the message, allowing for a more accurate measure of the consumption rate, as described in Kawai. It should be noted also that Nikolov states on Col. 12, Lines 22-25 that “Since multiple subscribers may be involved, the timing of reading the messages may vary, particularly, when some of the subscribers are durable subscribers;” therefore, Nikolov contemplates a need to account for variance in consumption rate.
Ferstay-Tiwari-Nikolov-Kawai does not explicitly disclose at the time the message is placed into the message queue, wherein the dynamic expiry value designates whether the computer is authorized by the message producer to extend the expiry value of the message
However, Kahn discloses at the time the message is placed into the message queue, wherein the dynamic expiry value designates whether the computer is authorized by the message producer to extend the expiry value of the message ([0058] the subscriber 170 is authenticated by the remote content server 110. The remote content server 110 can generate a validation code which is transmitted with the message to queue; [0070] each queue entry includes user identification information (e.g., username and password, authentication token, temporary password, etc.), queue order information, content location information (e.g., URL, network address, etc.), content identification information (e.g., program identifier, program name, title, show number, program number, etc.), content expiration information; [0077] the identity of the subscriber 170 is determined based on an automatic identify check (e.g., cookie, network address, etc.), an authentication check (e.g., username and password, randomly assigned identification, etc.), and/or by any other type of identification mechanism. For example, the queue management module 130 determines the identity of the subscriber 170.; [0091] As another example, the "Referee Please Guilty" program is going to expire in two days, but the subscriber 170 wants to watch the program over the weekend which is in four days. As such, the subscriber 170 selects the "Keep" link. The video distribution module 160 transmits the keep request to the queue management module 130 which extends the expiration date a set time or a selected time. Please note that each queue entry including user identification information and context expiration information, where the identity and authentication of the subscriber 170 is determined, and the subscriber 170 may have the queue management module 130 extend the expiration date corresponds to Applicant’s setting the dynamic expiry value at the time the message is placed into the message queue and have it designate whether the computer is authorized by the message producer to extend the expiry value of the message.)
Ferstay-Tiwari-Nikolov-Kawai and Kahn are both considered to be analogous to the claimed invention because they are in the same field of computer-based message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari-Nikolov-Kawai to incorporate the teachings of Kahn to modify the system as previously described to set the dynamic expiry value at the time the message is placed into the message queue and have it designate whether the computer is authorized by the message producer to extend the expiry value of the message, allowing for improved system control and access control via authentication, as described in Kahn.
Regarding Claim 2, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 1, Tiwari further discloses tracking, by the computer, a current message consumption rate in the message queue based on a current message processing speed of the message consumer (Col. 2, Lines 36-39- the dispatch function monitors the message consumption function to determine the rate at which the message consumption function processes a message from the message queue. Please note that determining the rate at which the message consumption function processes a message from the message queue corresponds to Applicant’s tracking a current message consumption rate in the message queue based on a current message processing speed of the message consumer.);
Ferstay further discloses determining, by the computer, whether the message is likely to expire in the message queue based on the current message consumption rate in the message queue (Col. 61, Lines 42-46-To do so, the redelivery monitor 2340 can use the timestamp of the last consumed marker as current when determining whether a redelivery deadline, or refreshed redelivery deadline, has expired. Please note that corresponds to determining whether the message is likely to expire in the message queue based on the current message consumption rate in the message queue, as using the timestamp of the last consumed marker to determine whether a deadline has expired would inherently be based on the current message consumption rate in the message queue, since the message consumption rate affects the timestamp of the last consumed marker of a message of the queue.);
and responsive to the computer determining that the message is likely to expire in the message queue based on the current message consumption rate in the message queue, increasing, by the computer, the extended expiry value of the message (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline associated with a message once the deadline is near expiration in the queue corresponds to Applicant’s increasing the extended expiry value of the message in response to determining the message is likely to expire in the message queue based on the current message consumption rate in the message queue, as a higher message consumption rate as determined by Tiwari would mean it is near the beginning of the redelivery priority queue due to the consumption of previous messages and therefore likely to expire.).
Regarding Claim 3, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 1, Tiwari further discloses performing, by the computer, a scan of the message queue in response to a set of messages being placed in the message queue by the producer of the set of messages via a network (Col. 4, Lines 4-10- In the system 100, a message processing service 102 initiates a triggering system 104 to invoke a dispatch function 106 for the processing of a set of messages 112 in a message queue 108. In an embodiment, the message processing service 102 comprises one or more computer systems that monitor network traffic to identify messages that are to be performed. Please note that the message processing service 102 monitoring network traffic to identify messages that are to be performed, and also initiating a triggering system 104 to invoke a dispatch function 106 for the processing of a set of messages 112 in a message queue 108 corresponds to performing a scan of the message queue in response to a set of messages being placed in the message queue by the producer of the set of messages via a network, as the set of messages 112 are placed in the message queue 108 after being sent via network traffic, and the triggering system 104 invoking the dispatch function 106 for their processing in response corresponds to performing a scan.);
Ferstay further discloses and generating, by the computer, a list of messages having the expiry value and the dynamic expiry value set in the header of a corresponding message in the set of messages located in the message queue based on the scan of the message queue (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s determining whether the dynamic expiry is set to one in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the expiry value and dynamic expiry value set in the header of the corresponding message. Furthermore, as Ferstay discloses, the messages are contained in a queue, corresponding to a list.).
Regarding Claim 4, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 3, Ferstay further discloses identifying, by the computer, the expiry value of each respective message in the list of messages having expiry values (Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that an expiry time configurable on a per-message basis corresponds to Applicant’s identifying the expiry value of each respective message in the list of messages having expiry values.);
and ranking, by the computer, each respective message in the list of messages having expiry values in ascending order from longest message expiry on bottom of the list to shortest message expiry on top of the list based on the expiry value of each respective message in the list to form a ranked list of messages (Col. 42, Lines 37-42- In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time, which results in modification of the corresponding marker in the redelivery priority queue as the redelivery priority queue can be ordered by expiration deadlines. Please note that ordering the redelivery priority queue of messages by expiration deadlines corresponds to Applicant’s ranking each respective message in the list of messages having expiry values in ascending order from longest message expiry on bottom of the list to shortest message expiry on top of the list based on the expiry value of each respective message in the list to form a ranked list of messages, as a ranked list of messages is created wherein, as implemented in Ferstay, the messages expiring soonest, i.e., having the shortest message expiry, are at the top and therefore have “priority” for consumption from the queue.).
Regarding Claim 5, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 4, Ferstay further discloses determining, by the computer, whether the dynamic expiry value is set to one in the header of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s determining whether the dynamic expiry is set to one in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the header of the message, and indicating the processing state corresponds to the dynamic expiry value is set to one, as it is a configurable value associated with the processing state of the message related to the expiry time.);
responsive to the computer determining that the dynamic expiry value is set to one in the header of the message, determining, by the computer, a remainder of the expiry value corresponding to the message (Col. 61, Lines 5-10-assume an initial redelivery deadline is 24 hours and two hours have passed since the redelivery deadline, leaving 22 hours until the redelivery deadline expires. Please note that determining that 22 hours are left until the deadline expires corresponds to determining a remainer of the expiry value corresponding to the message. Furthermore, since this can be determined based on an initial deadline, i.e., what is configured based on the markers associated with the message corresponding to its header, this corresponds to being responsive that the dynamic expiry value being set to one in the header, as that would necessarily be factored in to the determination of how long is left until expiration.);
Tiwari further discloses and determining, by the computer, the amount of time before the message consumer can process the message off the message queue based on the plurality of factors (Col. 5, Lines 32-45-In an embodiment, the dispatch function 106 determines the amount of time that it takes for a software container, such as a message consumption function 110, to process a message from the message queue 108. In an embodiment, to determine the amount of time that it takes for a message consumption function 110 to process a message from the message queue 108, the dispatch function 106 invokes a message consumption function 110 and monitors this message consumption function 110 as it processes messages from the message queue. Through the monitoring of the message consumption function 110, the dispatch function 106 identifies the amount of time that it takes for a message consumption function 110 to process a message. Please note that the dispatch function 106 determining the amount of time it takes for message consumption function 110 to process a message from message queue 108 by monitoring the amount of time it takes for it to process a message corresponds to Applicant’s determining an amount of time before a message consumer can process the message off the message queue based on the plurality of factors.).
Regarding Claim 6, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 5 further discloses from Tiwari message processing speed of the message consumer; the amount of time before the message consumer can process the message (Col. 2, Lines 36-39- the dispatch function monitors the message consumption function to determine the rate at which the message consumption function processes a message from the message queue. Please note that the rate at which the message consumption function processes a message from the message queue corresponds to Applicant’s message processing speed of the message consumer and the amount of time before the message consumer can process the message.)
Kawai further discloses determining, by the computer, a standard deviation value corresponding to a message processing speed of the message consumer at this point in time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that the calculated standard deviation of the consumption rate, where the consumption rate is the amount consumed per unit of time, corresponds to Applicant’s determining a standard deviation value corresponding to a processing speed of the consumer at this point in time.);
and adding, by the computer, the standard deviation value corresponding to the message processing speed of the message consumer at this point in time to form a standard deviation adjusted amount of time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that using the standard deviation of the consumption rate as the index in the variation rate used to calculate the projected timing of next replacement corresponds to Applicant’s adding the standard deviation value corresponding to the processing speed of the consumer at this point in time to form a standard deviation adjusted amount of time, as it uses the standard deviation added to the consumption rate per unit of time to form a standard deviation adjusted amount of time of consumption.).
Regarding Claim 7, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 6, Ferstay further discloses determining, by the computer, whether the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message (Col. 62, Lines 27-39-In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration.. Please note that determining that the deadline of a message is near expiration corresponds to Applicant’s determining whether the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, as it would be obvious to a person of ordinary skill in the art to compare the standard deviation adjusted amount of time before the message consumer can process the message that was previously derived by the system to the remainder of the expiry value corresponding to the message, as they are the two components of the system that remove messages from the queue.);
responsive to the computer determining that the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, utilizing, by the computer, the standard deviation adjusted amount of time before the message consumer can process the message as an extended expiry value for the message (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline after determining that the deadline of a message is near expiration corresponds to Applicant’s utilizing the standard deviation adjusted amount of time before the message consumer can process the message as an extended expiry value for the message after determining that the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, as it would be obvious to a person of ordinary skill in the art to extend the expiration of the message via a keep-alive marker upon determining that it would not be able to be consumed prior to the expiration.);
and setting, by the computer, the extended expiry value of the standard deviation adjusted amount of time before the message consumer can process the message in the header of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s setting the extended expiry value of the standard deviation adjusted amount of time before the message consumer can process the message in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the extended expiry value, since the system could issue a keep-alive marker in the header of a message once it determines that the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, which would result in an extended expiry value being set. It would, in effect, achieve the same result.).
Regarding Claim 9, Ferstay discloses A computer system for dynamically controlling message expiry in a message queue (Col. 54, Lines 45-58-In implementation, to facilitate message redelivery, a queue topic may be used to hold messages or tasks to process and a markers topic may be used to hold markers indicating processing states associated with messages or tasks. […] upon expiration of a redelivery deadline (or refreshed redelivery deadline) and when an end state for a task has not been achieved, message redelivery may occur. Please note that an implementation where a queue topic is used to hold messages to process, with associated expiration of a redelivery deadline, corresponds to Applicant’s computer system for dynamically controlling message expiry in a message queue.), the computer system comprising: a communication fabric (Col. 71, Lines 41-43-I/O ports 2918 allow computing device 2900 to be logically coupled to other devices including I/O components 2920. Please note that I/O ports 2918 allowing computing device 2900 to be logically coupled to other devices including I/O components 2920 corresponds to Applicant’s communication fabric of the computer system.); a storage device connected to the communication fabric, wherein the storage device stores program instructions; and a processor connected to the communication fabric, wherein the processor executes the program instructions (Col. 71, Lines29-36 -Memory 2912 includes computer storage media in the form of volatile and/or nonvolatile memory […] Computing device 2900 includes one or more processors 2914 that read data from various entities such as memory 2912 or I/O components 2920. Please note that the memory 2912 corresponds to the storage device storing program instructions and connected to the communication fabric, as it is in the same computer system 2900 as the I/O components 2920, and the processor 2914 that reads data for the computing system corresponds to the processor connected to the communication fabric that executes the program instructions.) to:
track a message located in the message queue that has an expiry value and a dynamic expiry value set in a header of the message by a producer of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a producer writing markers indicating the processing state to the markers topic 2330 and a marker having a configurable expiry time on a per-message basis corresponds to Applicant’s tracking a message located in a message queue that has an expiry value and a dynamic expiry value set by a message producer in a header of the message, as the markers and markers topic 2330 correspond to the header of the message, and define these values set by the message producer writing the markers.);
determine that the message is eligible for extension of the expiry value based on the dynamic expiry value being set to a particular value (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that determining that a particular marker, associated with a message, allows for extension of the expiration deadline via a keep-alive marker being received corresponds to determining that the message is eligible for extension of the expiry value based on the dynamic expiry value being set to a particular value, as when the particular keep-alive value is received, the expiry value of the deadline is able to be extended.);
and extend the expiry value of the message to form an extended expiry value in response to determining that the message is likely to expire in the message queue (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline associated with a message once the deadline is near expiration in the queue when the keep-alive marker for the message is received corresponds to Applicant’s extending the expiry value of the message to form an extended expiry value in response to determining that the message is likely to expire in the message queue.)
Ferstay does not explicitly disclose determine an amount of time before a message consumer can process the message;
prior to the message consumer processing the message based on the plurality of factors.
However, Tiwari discloses determine an amount of time before a message consumer can process the message (Col. 5, Lines 32-45-In an embodiment, the dispatch function 106 determines the amount of time that it takes for a software container, such as a message consumption function 110, to process a message from the message queue 108. In an embodiment, to determine the amount of time that it takes for a message consumption function 110 to process a message from the message queue 108, the dispatch function 106 invokes a message consumption function 110 and monitors this message consumption function 110 as it processes messages from the message queue. Through the monitoring of the message consumption function 110, the dispatch function 106 identifies the amount of time that it takes for a message consumption function 110 to process a message. Please note that the dispatch function 106 determining the amount of time it takes for message consumption function 110 to process a message from message queue 108 by monitoring the amount of time it takes for it to process a message corresponds to Applicant’s determining an amount of time before a message consumer can process the message.);
prior to the message consumer processing the message based on the plurality of factors (Col. 3, Lines 49-53-the next set of message consumption functions invoked by another dispatch function will contribute to consumption of messages from the message queue as the previously invoked set of message consumption functions expire. Please note that since the messages are consumed from the queue as the previous set of message consumption functions expire, a message that has been extended as disclosed by Ferstay would be extended prior to being processed by the consumer, corresponding to doing so prior to the message consumer processing the message based on the plurality of factors.).
Ferstay and Tiwari are both considered to be analogous to the claimed invention because they are in the same field of computer message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay to incorporate the teachings of Tiwari to modify the system tracking dynamic expiration values of messages in a message queue and determining their eligibility to be extended to determine the amount of time before a message consumer can process the message, allowing for improved system efficiency by improving scaling in response to changing message consumption rates, as described in Tiwari.
Ferstay-Tiwari does not explicitly disclose based on a plurality of factors that includes number of messages in the message queue, position of each respective message within the message queue, number of messages processed per second by the message consumer, average size of messages in the message queue, put and get rates in and out of the message queue, and set priority level of each respective message in the message queue,
However, Nikolov discloses based on a plurality of factors that includes number of messages in the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the messages sorted by identifiable pCounters in the master queue of messages corresponds to Applicant’s number of messages in the message queue, as one of ordinary skill in the art would be able to identify the number of messages in the message queue by counting the number of pCounters in the queue that are each associated with a distinct message in the message queue.),
position of each respective message within the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the position of the message upon insertion in the master queue of messages corresponds to Applicant’s position of each respective message within the message queue.),
number of messages processed per second by the message consumer (Col. 33, Lines 14-17- prioritizes the receiving threads and the delivery thread, such that the amount of messages received and the amount of messages delivered within a given time unit are relatively equivalent. Please note that the amount of messages received in a given time unit corresponds to Applicant’s number of messages processed per second by the message consumer. ),
average size of messages in the message queue (Col. 18, Lines 39-49- messages that exceed a certain size limit are considered "big" messages and undergo a special treatment in order to save memory. […] When adding a message to the master queue, this size limit is checked and, if exceeded, the message's body is cleared. The message header and properties, however, remain in memory to allow the message selector to operate. Please note that the size limit for messages being checked to see if they exceed a certain size limit when adding them to the master queue corresponds to Applicant’s average size of messages in the message queue, as it would be obvious to one of ordinary skill in the art to utilize the average size of messages in the message queue as a measure by which to determine if new messages exceed a certain size limit to be considered “big.”),
put and get rates in and out of the message queue (Col. 32, Lines 61-65- configuring priorities of the receiving threads and the delivery thread such that a receiving rate of messages from the producers is relatively equivalent to a delivery rate of messages delivered to the subscribers. Please note that the receiving rate of messages from the producers and the delivery rate of messages delivered to the subscribers correspond to Applicant’s put and get rates in and out of the message queue. ),
and set priority level of each respective message in the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the pCounter ordering criterion showing the priority of the message in the master queue of messages corresponds to Applicant’s set priority level of each respective message within the message queue.),
Ferstay-Tiwari and Nikolov are both considered to be analogous to the claimed invention because they are in the same field of computer message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari to incorporate the teachings of Nikolov to modify the system tracking dynamic expiration values of messages in a message queue and determining their eligibility to be extended to determine the amount of time before a message consumer can process the message to determine an amount of time before a message consumer can process the message based on a plurality of factors as stated above, allowing for improved system efficiency by improving message distribution responsive to changing factors of the message queue, as described in Nikolov.
Ferstay-Tiwari-Nikolov does not explicitly disclose standard deviation corresponding to the message consumer at this point in time
However, Kawai discloses standard deviation corresponding to the message consumer at this point in time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that the calculated standard deviation of the consumption rate, where the consumption rate is the amount consumed per unit of time, corresponds to Applicant’s standard deviation corresponding to the message consumer at this point in time.);
Ferstay-Tiwari-Nikolov and Kawai are both considered to be analogous to the claimed invention because they are in the same field of computer-based resource consumption rate tracking. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari-Nikolov to incorporate the teachings of Kawai to modify the system as previously described to include the standard deviation corresponding to the message consumer at this point in time as one of the factors in the determination of an amount of time before a message consumer can process the message, allowing for a more accurate measure of the consumption rate, as described in Kawai. It should be noted also that Nikolov states on Col. 12, Lines 22-25 that “Since multiple subscribers may be involved, the timing of reading the messages may vary, particularly, when some of the subscribers are durable subscribers;” therefore, Nikolov contemplates a need to account for variance in consumption rate.
Ferstay-Tiwari-Nikolov-Kawai does not explicitly disclose at the time the message is placed into the message queue, wherein the dynamic expiry value designates whether the computer is authorized by the message producer to extend the expiry value of the message
However, Kahn discloses at the time the message is placed into the message queue, wherein the dynamic expiry value designates whether the computer is authorized by the message producer to extend the expiry value of the message ([0058] the subscriber 170 is authenticated by the remote content server 110. The remote content server 110 can generate a validation code which is transmitted with the message to queue; [0070] each queue entry includes user identification information (e.g., username and password, authentication token, temporary password, etc.), queue order information, content location information (e.g., URL, network address, etc.), content identification information (e.g., program identifier, program name, title, show number, program number, etc.), content expiration information; [0077] the identity of the subscriber 170 is determined based on an automatic identify check (e.g., cookie, network address, etc.), an authentication check (e.g., username and password, randomly assigned identification, etc.), and/or by any other type of identification mechanism. For example, the queue management module 130 determines the identity of the subscriber 170.; [0091] As another example, the "Referee Please Guilty" program is going to expire in two days, but the subscriber 170 wants to watch the program over the weekend which is in four days. As such, the subscriber 170 selects the "Keep" link. The video distribution module 160 transmits the keep request to the queue management module 130 which extends the expiration date a set time or a selected time. Please note that each queue entry including user identification information and context expiration information, where the identity and authentication of the subscriber 170 is determined, and the subscriber 170 may have the queue management module 130 extend the expiration date corresponds to Applicant’s setting the dynamic expiry value at the time the message is placed into the message queue and have it designate whether the computer is authorized by the message producer to extend the expiry value of the message.)
Ferstay-Tiwari-Nikolov-Kawai and Kahn are both considered to be analogous to the claimed invention because they are in the same field of computer-based message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari-Nikolov-Kawai to incorporate the teachings of Kahn to modify the system as previously described to set the dynamic expiry value at the time the message is placed into the message queue and have it designate whether the computer is authorized by the message producer to extend the expiry value of the message, allowing for improved system control and access control via authentication, as described in Kahn.
Regarding Claim 10, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 9, Tiwari further discloses track a current message consumption rate in the message queue based on a current message processing speed of the message consumer (Col. 2, Lines 36-39- the dispatch function monitors the message consumption function to determine the rate at which the message consumption function processes a message from the message queue. Please note that determining the rate at which the message consumption function processes a message from the message queue corresponds to Applicant’s tracking a current message consumption rate in the message queue based on a current message processing speed of the message consumer.);
Ferstay further discloses determine whether the message is likely to expire in the message queue based on the current message consumption rate in the message queue (Col. 61, Lines 42-46-To do so, the redelivery monitor 2340 can use the timestamp of the last consumed marker as current when determining whether a redelivery deadline, or refreshed redelivery deadline, has expired. Please note that corresponds to determining whether the message is likely to expire in the message queue based on the current message consumption rate in the message queue, as using the timestamp of the last consumed marker to determine whether a deadline has expired would inherently be based on the current message consumption rate in the message queue, since the message consumption rate affects the timestamp of the last consumed marker of a message of the queue.);
and increase the extended expiry value of the message in response to determining that the message is likely to expire in the message queue based on the current message consumption rate in the message queue (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline associated with a message once the deadline is near expiration in the queue corresponds to Applicant’s increasing the extended expiry value of the message in response to determining the message is likely to expire in the message queue based on the current message consumption rate in the message queue, as a higher message consumption rate as determined by Tiwari would mean it is near the beginning of the redelivery priority queue due to the consumption of previous messages and therefore likely to expire.).
Regarding Claim 11, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 9, Tiwari further discloses perform a scan of the message queue in response to a set of messages being placed in the message queue by the producer of the set of messages via a network (Col. 4, Lines 4-10- In the system 100, a message processing service 102 initiates a triggering system 104 to invoke a dispatch function 106 for the processing of a set of messages 112 in a message queue 108. In an embodiment, the message processing service 102 comprises one or more computer systems that monitor network traffic to identify messages that are to be performed. Please note that the message processing service 102 monitoring network traffic to identify messages that are to be performed, and also initiating a triggering system 104 to invoke a dispatch function 106 for the processing of a set of messages 112 in a message queue 108 corresponds to performing a scan of the message queue in response to a set of messages being placed in the message queue by the producer of the set of messages via a network, as the set of messages 112 are placed in the message queue 108 after being sent via network traffic, and the triggering system 104 invoking the dispatch function 106 for their processing in response corresponds to performing a scan.);
Ferstay further discloses and generate a list of messages having the expiry value and the dynamic expiry value set in the header of a corresponding message in the set of messages located in the message queue based on the scan of the message queue. (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s determining whether the dynamic expiry is set to one in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the expiry value and dynamic expiry value set in the header of the corresponding message. Furthermore, as Ferstay discloses, the messages are contained in a queue, corresponding to a list.).
Regarding Claim 12, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 11, Ferstay further discloses identify the expiry value of each respective message in the list of messages having expiry values (Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that an expiry time configurable on a per-message basis corresponds to Applicant’s identifying the expiry value of each respective message in the list of messages having expiry values.);
and rank each respective message in the list of messages having expiry values in ascending order from longest message expiry on bottom of the list to shortest message expiry on top of the list based on the expiry value of each respective message in the list to form a ranked list of messages (Col. 42, Lines 37-42- In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time, which results in modification of the corresponding marker in the redelivery priority queue as the redelivery priority queue can be ordered by expiration deadlines. Please note that ordering the redelivery priority queue of messages by expiration deadlines corresponds to Applicant’s ranking each respective message in the list of messages having expiry values in ascending order from longest message expiry on bottom of the list to shortest message expiry on top of the list based on the expiry value of each respective message in the list to form a ranked list of messages, as a ranked list of messages is created wherein, as implemented in Ferstay, the messages expiring soonest, i.e., having the shortest message expiry, are at the top and therefore have “priority” for consumption from the queue.).
Regarding Claim 13, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 12, Ferstay further discloses determine whether the dynamic expiry value is set to one in the header of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s determining whether the dynamic expiry is set to one in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the header of the message, and indicating the processing state corresponds to the dynamic expiry value is set to one, as it is a configurable value associated with the processing state of the message related to the expiry time.);
determine a remainder of the expiry value corresponding to the message in response to determining that the dynamic expiry value is set to one in the header of the message (Col. 61, Lines 5-10-assume an initial redelivery deadline is 24 hours and two hours have passed since the redelivery deadline, leaving 22 hours until the redelivery deadline expires. Please note that determining that 22 hours are left until the deadline expires corresponds to determining a remainer of the expiry value corresponding to the message. Furthermore, since this can be determined based on an initial deadline, i.e., what is configured based on the markers associated with the message corresponding to its header, this corresponds to being responsive that the dynamic expiry value being set to one in the header, as that would necessarily be factored in to the determination of how long is left until expiration.);
Tiwari further discloses and determine the amount of time before the message consumer can process the message off the message queue based on the plurality of factors.(Col. 5, Lines 32-45-In an embodiment, the dispatch function 106 determines the amount of time that it takes for a software container, such as a message consumption function 110, to process a message from the message queue 108. In an embodiment, to determine the amount of time that it takes for a message consumption function 110 to process a message from the message queue 108, the dispatch function 106 invokes a message consumption function 110 and monitors this message consumption function 110 as it processes messages from the message queue. Through the monitoring of the message consumption function 110, the dispatch function 106 identifies the amount of time that it takes for a message consumption function 110 to process a message. Please note that the dispatch function 106 determining the amount of time it takes for message consumption function 110 to process a message from message queue 108 by monitoring the amount of time it takes for it to process a message corresponds to Applicant’s determining an amount of time before a message consumer can process the message off the message queue based on the plurality of factors.).
Regarding Claim 14, Ferstay discloses A computer program product for dynamically controlling message expiry in a message queue (Col. 54, Lines 45-58-In implementation, to facilitate message redelivery, a queue topic may be used to hold messages or tasks to process and a markers topic may be used to hold markers indicating processing states associated with messages or tasks. […] upon expiration of a redelivery deadline (or refreshed redelivery deadline) and when an end state for a task has not been achieved, message redelivery may occur. Please note that an implementation where a queue topic is used to hold messages to process, with associated expiration of a redelivery deadline, corresponds to Applicant’s computer program product for dynamically controlling message expiry in a message queue.), the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform (Col. 70, Lines 61-65- Computing device 2900 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computing device 2900 and includes both volatile and nonvolatile media, and removable and non-removable media. Please note that the computer-readable media that can be accessed by computing device 2900 corresponds to Applicant’s computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform the disclosed method.) a method of:
tracking, by the computer, a message located in the message queue that has an expiry value and a dynamic expiry value set in a header of the message by a producer of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a producer writing markers indicating the processing state to the markers topic 2330 and a marker having a configurable expiry time on a per-message basis corresponds to Applicant’s tracking a message located in a message queue that has an expiry value and a dynamic expiry value set by a message producer in a header of the message, as the markers and markers topic 2330 correspond to the header of the message, and define these values set by the message producer writing the markers.);
determining, by the computer, that the message is eligible for extension of the expiry value based on the dynamic expiry value being set to a particular value (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that determining that a particular marker, associated with a message, allows for extension of the expiration deadline via a keep-alive marker being received corresponds to determining that the message is eligible for extension of the expiry value based on the dynamic expiry value being set to a particular value, as when the particular keep-alive value is received, the expiry value of the deadline is able to be extended.);
and extending, by the computer, the expiry value of the message to form an extended expiry value in response to determining that the message is likely to expire in the message queue (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline associated with a message once the deadline is near expiration in the queue when the keep-alive marker for the message is received corresponds to Applicant’s extending the expiry value of the message to form an extended expiry value in response to determining that the message is likely to expire in the message queue.)
Ferstay does not explicitly disclose determining, by the computer, an amount of time before a message consumer can process the message;
prior to the message consumer processing the message based on the plurality of factors.
However, Tiwari discloses determining, by the computer, an amount of time before a message consumer can process the message (Col. 5, Lines 32-45-In an embodiment, the dispatch function 106 determines the amount of time that it takes for a software container, such as a message consumption function 110, to process a message from the message queue 108. In an embodiment, to determine the amount of time that it takes for a message consumption function 110 to process a message from the message queue 108, the dispatch function 106 invokes a message consumption function 110 and monitors this message consumption function 110 as it processes messages from the message queue. Through the monitoring of the message consumption function 110, the dispatch function 106 identifies the amount of time that it takes for a message consumption function 110 to process a message. Please note that the dispatch function 106 determining the amount of time it takes for message consumption function 110 to process a message from message queue 108 by monitoring the amount of time it takes for it to process a message corresponds to Applicant’s determining an amount of time before a message consumer can process the message.);
prior to the message consumer processing the message based on the plurality of factors (Col. 3, Lines 49-53-the next set of message consumption functions invoked by another dispatch function will contribute to consumption of messages from the message queue as the previously invoked set of message consumption functions expire. Please note that since the messages are consumed from the queue as the previous set of message consumption functions expire, a message that has been extended as disclosed by Ferstay would be extended prior to being processed by the consumer, corresponding to doing so prior to the message consumer processing the message based on the plurality of factors.).
Ferstay and Tiwari are both considered to be analogous to the claimed invention because they are in the same field of computer message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay to incorporate the teachings of Tiwari to modify the system tracking dynamic expiration values of messages in a message queue and determining their eligibility to be extended to determine the amount of time before a message consumer can process the message, allowing for improved system efficiency by improving scaling in response to changing message consumption rates, as described in Tiwari.
Ferstay-Tiwari does not explicitly disclose based on a plurality of factors that includes number of messages in the message queue, position of each respective message within the message queue, number of messages processed per second by the message consumer, average size of messages in the message queue, put and get rates in and out of the message queue, and set priority level of each respective message in the message queue,
However, Nikolov discloses based on a plurality of factors that includes number of messages in the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the messages sorted by identifiable pCounters in the master queue of messages corresponds to Applicant’s number of messages in the message queue, as one of ordinary skill in the art would be able to identify the number of messages in the message queue by counting the number of pCounters in the queue that are each associated with a distinct message in the message queue.),
position of each respective message within the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the position of the message upon insertion in the master queue of messages corresponds to Applicant’s position of each respective message within the message queue.),
number of messages processed per second by the message consumer (Col. 33, Lines 14-17- prioritizes the receiving threads and the delivery thread, such that the amount of messages received and the amount of messages delivered within a given time unit are relatively equivalent. Please note that the amount of messages received in a given time unit corresponds to Applicant’s number of messages processed per second by the message consumer. ),
average size of messages in the message queue (Col. 18, Lines 39-49- messages that exceed a certain size limit are considered "big" messages and undergo a special treatment in order to save memory. […] When adding a message to the master queue, this size limit is checked and, if exceeded, the message's body is cleared. The message header and properties, however, remain in memory to allow the message selector to operate. Please note that the size limit for messages being checked to see if they exceed a certain size limit when adding them to the master queue corresponds to Applicant’s average size of messages in the message queue, as it would be obvious to one of ordinary skill in the art to utilize the average size of messages in the message queue as a measure by which to determine if new messages exceed a certain size limit to be considered “big.”),
put and get rates in and out of the message queue (Col. 32, Lines 61-65- configuring priorities of the receiving threads and the delivery thread such that a receiving rate of messages from the producers is relatively equivalent to a delivery rate of messages delivered to the subscribers. Please note that the receiving rate of messages from the producers and the delivery rate of messages delivered to the subscribers correspond to Applicant’s put and get rates in and out of the message queue. ),
and set priority level of each respective message in the message queue (Col. 17, Lines 12-30- The pCounter is the ordering criterion for messages. It is a combination of the inverted priority (e.g., the higher a message's priority, the lower the pCounter) and a counter that is assigned when the message is sent to the queuing engine […] In one embodiment, master queue 1202 is a representation of a part of the message queue in memory. Within the master queue, the messages are sorted by their pCounters. When a new message arrives that has a higher priority than the last message in the master queue, it is inserted to the appropriate position. Please note the pCounter ordering criterion showing the priority of the message in the master queue of messages corresponds to Applicant’s set priority level of each respective message within the message queue.),
Ferstay-Tiwari and Nikolov are both considered to be analogous to the claimed invention because they are in the same field of computer message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari to incorporate the teachings of Nikolov to modify the system tracking dynamic expiration values of messages in a message queue and determining their eligibility to be extended to determine the amount of time before a message consumer can process the message to determine an amount of time before a message consumer can process the message based on a plurality of factors as stated above, allowing for improved system efficiency by improving message distribution responsive to changing factors of the message queue, as described in Nikolov.
Ferstay-Tiwari-Nikolov does not explicitly disclose standard deviation corresponding to the message consumer at this point in time
However, Kawai discloses standard deviation corresponding to the message consumer at this point in time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that the calculated standard deviation of the consumption rate, where the consumption rate is the amount consumed per unit of time, corresponds to Applicant’s standard deviation corresponding to the message consumer at this point in time.);
Ferstay-Tiwari-Nikolov and Kawai are both considered to be analogous to the claimed invention because they are in the same field of computer-based resource consumption rate tracking. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari-Nikolov to incorporate the teachings of Kawai to modify the system as previously described to include the standard deviation corresponding to the message consumer at this point in time as one of the factors in the determination of an amount of time before a message consumer can process the message, allowing for a more accurate measure of the consumption rate, as described in Kawai. It should be noted also that Nikolov states on Col. 12, Lines 22-25 that “Since multiple subscribers may be involved, the timing of reading the messages may vary, particularly, when some of the subscribers are durable subscribers;” therefore, Nikolov contemplates a need to account for variance in consumption rate.
Ferstay-Tiwari-Nikolov-Kawai does not explicitly disclose at the time the message is placed into the message queue, wherein the dynamic expiry value designates whether the computer is authorized by the message producer to extend the expiry value of the message
However, Kahn discloses at the time the message is placed into the message queue, wherein the dynamic expiry value designates whether the computer is authorized by the message producer to extend the expiry value of the message ([0058] the subscriber 170 is authenticated by the remote content server 110. The remote content server 110 can generate a validation code which is transmitted with the message to queue; [0070] each queue entry includes user identification information (e.g., username and password, authentication token, temporary password, etc.), queue order information, content location information (e.g., URL, network address, etc.), content identification information (e.g., program identifier, program name, title, show number, program number, etc.), content expiration information; [0077] the identity of the subscriber 170 is determined based on an automatic identify check (e.g., cookie, network address, etc.), an authentication check (e.g., username and password, randomly assigned identification, etc.), and/or by any other type of identification mechanism. For example, the queue management module 130 determines the identity of the subscriber 170.; [0091] As another example, the "Referee Please Guilty" program is going to expire in two days, but the subscriber 170 wants to watch the program over the weekend which is in four days. As such, the subscriber 170 selects the "Keep" link. The video distribution module 160 transmits the keep request to the queue management module 130 which extends the expiration date a set time or a selected time. Please note that each queue entry including user identification information and context expiration information, where the identity and authentication of the subscriber 170 is determined, and the subscriber 170 may have the queue management module 130 extend the expiration date corresponds to Applicant’s setting the dynamic expiry value at the time the message is placed into the message queue and have it designate whether the computer is authorized by the message producer to extend the expiry value of the message.)
Ferstay-Tiwari-Nikolov-Kawai and Kahn are both considered to be analogous to the claimed invention because they are in the same field of computer-based message queue management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Ferstay-Tiwari-Nikolov-Kawai to incorporate the teachings of Kahn to modify the system as previously described to set the dynamic expiry value at the time the message is placed into the message queue and have it designate whether the computer is authorized by the message producer to extend the expiry value of the message, allowing for improved system control and access control via authentication, as described in Kahn.
Regarding Claim 15, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 14, Tiwari further discloses tracking, by the computer, a current message consumption rate in the message queue based on a current message processing speed of the message consumer (Col. 2, Lines 36-39- the dispatch function monitors the message consumption function to determine the rate at which the message consumption function processes a message from the message queue. Please note that determining the rate at which the message consumption function processes a message from the message queue corresponds to Applicant’s tracking a current message consumption rate in the message queue based on a current message processing speed of the message consumer.);
Ferstay further discloses determining, by the computer, whether the message is likely to expire in the message queue based on the current message consumption rate in the message queue (Col. 61, Lines 42-46-To do so, the redelivery monitor 2340 can use the timestamp of the last consumed marker as current when determining whether a redelivery deadline, or refreshed redelivery deadline, has expired. Please note that corresponds to determining whether the message is likely to expire in the message queue based on the current message consumption rate in the message queue, as using the timestamp of the last consumed marker to determine whether a deadline has expired would inherently be based on the current message consumption rate in the message queue, since the message consumption rate affects the timestamp of the last consumed marker of a message of the queue.);
and responsive to the computer determining that the message is likely to expire in the message queue based on the current message consumption rate in the message queue, increasing, by the computer, the extended expiry value of the message (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline associated with a message once the deadline is near expiration in the queue corresponds to Applicant’s increasing the extended expiry value of the message in response to determining the message is likely to expire in the message queue based on the current message consumption rate in the message queue, as a higher message consumption rate as determined by Tiwari would mean it is near the beginning of the redelivery priority queue due to the consumption of previous messages and therefore likely to expire.).
Regarding Claim 16, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 14, Tiwari further discloses performing, by the computer, a scan of the message queue in response to a set of messages being placed in the message queue by the producer of the set of messages via a network (Col. 4, Lines 4-10- In the system 100, a message processing service 102 initiates a triggering system 104 to invoke a dispatch function 106 for the processing of a set of messages 112 in a message queue 108. In an embodiment, the message processing service 102 comprises one or more computer systems that monitor network traffic to identify messages that are to be performed. Please note that the message processing service 102 monitoring network traffic to identify messages that are to be performed, and also initiating a triggering system 104 to invoke a dispatch function 106 for the processing of a set of messages 112 in a message queue 108 corresponds to performing a scan of the message queue in response to a set of messages being placed in the message queue by the producer of the set of messages via a network, as the set of messages 112 are placed in the message queue 108 after being sent via network traffic, and the triggering system 104 invoking the dispatch function 106 for their processing in response corresponds to performing a scan.);
Ferstay further discloses and generating, by the computer, a list of messages having the expiry value and the dynamic expiry value set in the header of a corresponding message in the set of messages located in the message queue based on the scan of the message queue (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s determining whether the dynamic expiry is set to one in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the expiry value and dynamic expiry value set in the header of the corresponding message. Furthermore, as Ferstay discloses, the messages are contained in a queue, corresponding to a list.).
Regarding Claim 17, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 16, Ferstay further discloses identifying, by the computer, the expiry value of each respective message in the list of messages having expiry values (Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that an expiry time configurable on a per-message basis corresponds to Applicant’s identifying the expiry value of each respective message in the list of messages having expiry values.);
and ranking, by the computer, each respective message in the list of messages having expiry values in ascending order from longest message expiry on bottom of the list to shortest message expiry on top of the list based on the expiry value of each respective message in the list to form a ranked list of messages (Col. 42, Lines 37-42- In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time, which results in modification of the corresponding marker in the redelivery priority queue as the redelivery priority queue can be ordered by expiration deadlines. Please note that ordering the redelivery priority queue of messages by expiration deadlines corresponds to Applicant’s ranking each respective message in the list of messages having expiry values in ascending order from longest message expiry on bottom of the list to shortest message expiry on top of the list based on the expiry value of each respective message in the list to form a ranked list of messages, as a ranked list of messages is created wherein, as implemented in Ferstay, the messages expiring soonest, i.e., having the shortest message expiry, are at the top and therefore have “priority” for consumption from the queue.).
Regarding Claim 18, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 17, Ferstay further discloses determining, by the computer, whether the dynamic expiry value is set to one in the header of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s determining whether the dynamic expiry is set to one in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the header of the message, and indicating the processing state corresponds to the dynamic expiry value is set to one, as it is a configurable value associated with the processing state of the message related to the expiry time.);
responsive to the computer determining that the dynamic expiry value is set to one in the header of the message, determining, by the computer, a remainder of the expiry value corresponding to the message (Col. 61, Lines 5-10-assume an initial redelivery deadline is 24 hours and two hours have passed since the redelivery deadline, leaving 22 hours until the redelivery deadline expires. Please note that determining that 22 hours are left until the deadline expires corresponds to determining a remainer of the expiry value corresponding to the message. Furthermore, since this can be determined based on an initial deadline, i.e., what is configured based on the markers associated with the message corresponding to its header, this corresponds to being responsive that the dynamic expiry value being set to one in the header, as that would necessarily be factored in to the determination of how long is left until expiration.);
Tiwari further discloses and determining, by the computer, the amount of time before the message consumer can process the message off the message queue based on the plurality of factors (Col. 5, Lines 32-45-In an embodiment, the dispatch function 106 determines the amount of time that it takes for a software container, such as a message consumption function 110, to process a message from the message queue 108. In an embodiment, to determine the amount of time that it takes for a message consumption function 110 to process a message from the message queue 108, the dispatch function 106 invokes a message consumption function 110 and monitors this message consumption function 110 as it processes messages from the message queue. Through the monitoring of the message consumption function 110, the dispatch function 106 identifies the amount of time that it takes for a message consumption function 110 to process a message. Please note that the dispatch function 106 determining the amount of time it takes for message consumption function 110 to process a message from message queue 108 by monitoring the amount of time it takes for it to process a message corresponds to Applicant’s determining an amount of time before a message consumer can process the message off the message queue based on the plurality of factors.).
Regarding Claim 19, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 18 further discloses from Tiwari message processing speed of the message consumer; the amount of time before the message consumer can process the message (Col. 2, Lines 36-39- the dispatch function monitors the message consumption function to determine the rate at which the message consumption function processes a message from the message queue. Please note that the rate at which the message consumption function processes a message from the message queue corresponds to Applicant’s message processing speed of the message consumer and the amount of time before the message consumer can process the message.)
Kawai further discloses determining, by the computer, a standard deviation value corresponding to a message processing speed of the message consumer at this point in time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that the calculated standard deviation of the consumption rate, where the consumption rate is the amount consumed per unit of time, corresponds to Applicant’s determining a standard deviation value corresponding to a processing speed of the consumer at this point in time.);
and adding, by the computer, the standard deviation value corresponding to the message processing speed of the message consumer at this point in time to form a standard deviation adjusted amount of time ([0255] the index used as the variation in the toner consumption rate is the standard deviation of the toner consumption rate. The toner consumption rate is the amount of toner consumed per unit of time (day), which is obtained from the total amount of toner consumed during the predetermined period of time as used to calculate the projected timing of next replacement. Please note that using the standard deviation of the consumption rate as the index in the variation rate used to calculate the projected timing of next replacement corresponds to Applicant’s adding the standard deviation value corresponding to the processing speed of the consumer at this point in time to form a standard deviation adjusted amount of time, as it uses the standard deviation added to the consumption rate per unit of time to form a standard deviation adjusted amount of time of consumption.).
Regarding Claim 20, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 19, Ferstay further discloses determining, by the computer, whether the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message (Col. 62, Lines 27-39-In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration.. Please note that determining that the deadline of a message is near expiration corresponds to Applicant’s determining whether the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, as it would be obvious to a person of ordinary skill in the art to compare the standard deviation adjusted amount of time before the message consumer can process the message that was previously derived by the system to the remainder of the expiry value corresponding to the message, as they are the two components of the system that remove messages from the queue.);
responsive to the computer determining that the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, utilizing, by the computer, the standard deviation adjusted amount of time before the message consumer can process the message as an extended expiry value for the message (Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. In this way, if a particular marker is near the beginning of the redelivery priority queue because the redelivery deadline is near expiration, the reception of a keep-alive marker effectively moves the corresponding marker down in the redelivery priority queue such that it is further from expiration. In some implementations, as described above, the keep-alive marker modifies or extends the expiration deadline via a refresh time. Please note that extending the expiration deadline after determining that the deadline of a message is near expiration corresponds to Applicant’s utilizing the standard deviation adjusted amount of time before the message consumer can process the message as an extended expiry value for the message after determining that the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, as it would be obvious to a person of ordinary skill in the art to extend the expiration of the message via a keep-alive marker upon determining that it would not be able to be consumed prior to the expiration.);
and setting, by the computer, the extended expiry value of the standard deviation adjusted amount of time before the message consumer can process the message in the header of the message (Col. 58, Lines 45-47-write markers (e.g., as a producer) indicating the processing state to the markers topic 2330; Col. 60, Lines 44-47-As one example, a redelivery deadline may be a timestamp associated with a marker plus a configurable expiry time (e.g., one hour). Such an expiry time or interval can be configurable on a per-message basis. Col. 62, Lines 27-39-When a keep-alive marker is received, the redelivery monitor can identify a corresponding marker in the redelivery deadline queue and move the marker in the priority queue based on a refreshed redelivery deadline thereby extending the redelivery deadline. Please note that a configurable expiry time set by a marker on a per-message basis, as well as markers indicating the processing state written to the markers topic 2330, corresponds to Applicant’s setting the extended expiry value of the standard deviation adjusted amount of time before the message consumer can process the message in the header of the message, as the markers and markers topic 2330 set on a per-message basis correspond to the extended expiry value, since the system could issue a keep-alive marker in the header of a message once it determines that the standard deviation adjusted amount of time before the message consumer can process the message is greater than the remainder of the expiry value corresponding to the message, which would result in an extended expiry value being set. It would, in effect, achieve the same result.).
Regarding Claim 21, Ferstay-Tiwari-Nikolov-Kawai-Kahn as described in Claim 1, Kahn further discloses determining, by the computer, that the message having the extended expiry value is likely to expire in the message queue prior to the message consumer processing the message based on the plurality of factors ([0070] each queue entry includes user identification information (e.g., username and password, authentication token, temporary password, etc.), queue order information, content location information (e.g., URL, network address, etc.), content identification information (e.g., program identifier, program name, title, show number, program number, etc.), content expiration information.; [0091] As another example, the "Referee Please Guilty" program is going to expire in two days, but the subscriber 170 wants to watch the program over the weekend which is in four days. As such, the subscriber 170 selects the "Keep" link. The video distribution module 160 transmits the keep request to the queue management module 130 which extends the expiration date a set time or a selected time. Please note that the program imminently expiring in 2 days, allowing the subscriber to extend the expiration date via the queue management module 130, as they have yet to utilize the queued content corresponds to Applicant’s determining that the message having the extended expiry value is likely to expire in the message queue prior to the message consumer processing the message based on the plurality of factors.);
and determining, by the computer, a new expiry extension value for the message based on the plurality of factors in response to determining that the message having the extended expiry value is likely to expire in the message queue prior to the message consumer processing the message ([0070] each queue entry includes user identification information (e.g., username and password, authentication token, temporary password, etc.), queue order information, content location information (e.g., URL, network address, etc.), content identification information (e.g., program identifier, program name, title, show number, program number, etc.), content expiration information.; [0091] As another example, the "Referee Please Guilty" program is going to expire in two days, but the subscriber 170 wants to watch the program over the weekend which is in four days. As such, the subscriber 170 selects the "Keep" link. The video distribution module 160 transmits the keep request to the queue management module 130 which extends the expiration date a set time or a selected time. Please note that the queue management module 130 extending the expiration date to a new date based on the determination that the program is imminently expiring prior to the subscriber using it from the queue corresponds to Applicant’s determining a new expiry extension value for the message based on the plurality of factors in response to determining that the message having the extended expiry value is likely to expire in the message queue prior to the message consumer processing the message).
Response to Arguments
Applicant's arguments filed 06/25/2026 have been fully considered but they are not persuasive.
Applicant’s arguments are summarized as follows:
Regarding amended independent Claim 1 rejected under 35 U.S.C. 103, the Examiner has failed to establish a prima facie case of obviousness because the recited features of the claim are not found in the cited prior art. The references do not teach the amended limitations regarding the dynamic expiry value designating whether the computer is authorized by the message producer to extend the expiry value of the message, nor do they teach the previously added limitations regarding the specific plurality of factors used in determining the amount of time before a message consumer can process the message.
Therefore, Ferstay-Tiwari-Nikolov-Kawai does not teach all features of amended independent Claim 1, and the rejections of Claim 1 as well as similar independent claims 9 and 14 should be withdrawn, as well as dependent claims 2-7, 10-13, and 15-21, as they depend on allowable claims.
Regarding A, the examiner respectfully disagrees. The Applicant’s arguments are moot, as the rejections of the Claim now relies on a new grounds of rejection, Ferstay-Tiwari-Nikolov-Kawai-Kahn, which discloses the limitations stated by the Applicant via the combination of references, as stated above. Therefore, the recited features can be found in the cited combination of references, and independent Claim and similar independent Claims 9 and 14 remain rejected under 35 U.S.C. 103 for the reasons stated above, and the combinations cited would have been obvious to a person of ordinary skill in the art prior to the effective filing date of the application. Additionally, contrary to Applicant’s arguments, because the dependent claims 2-7, 10-13, and 15-21 depend on unpatentable claims and do not add limitations that overcome the rejection, they likewise remain rejected. The rejections under 35 U.S.C. 103 are maintained.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
LaPlante et al. (US 20150180750 A1) discloses setting an expiration value for a message, publishing it to a queue and software that consumes messages with a particular consumption rate, (see [0046, 0050-0051]).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to FARAZ T AKBARI whose telephone number is (571)272-4166. The examiner can normally be reached Monday-Thursday 9:30am-7:30pm ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Blair can be reached at (571)270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/FARAZ T AKBARI/ Examiner, Art Unit 2196
/APRIL Y BLAIR/ Supervisory Patent Examiner, Art Unit 2196