DETAILED ACTION
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 03/18/2026.
Claims 1-8 and 15-20 are pending and examined.
Claims 9-14 are cancelled.
Response to Arguments
Applicant's arguments filed 03/18/2026 with respect to 35 U.S.C. 103 have been fully considered but they are not persuasive. Applicant argued that Gupta does not teach or suggest "dynamically adjusting an allocation of computing resources allocated to an already executing instance... to adjust a cycle time of the already executing instance" as recited in newly amended claim 1, that Niu and/or Bohannon, taken separately or in combination, fail to remedy this deficiency, and that the rejection of claim 1 should be withdrawn. The examiner respectfully disagrees, see the 103 rejections below for a detailed analysis pertaining to the amended claim. While Gupta does not explicitly teach that the allocation of computing resources is to an already executing instance, the additional reference of Marr is interpreted to disclose the limitation as amended. For example, Marr’s automatic scaling service monitoring operating metrics of the virtual machine instance during the execution of the workload and automatically scaling the virtual machine by adding CPU or memory correlates to allocating computing resources to an already executing instance). Additionally, the automatic scaling service monitoring operating metrics of the virtual machine instance during the execution of the workload and automatically scaling the virtual machine by adding CPU or memory in response to one or more metrics exceeding a customer-defined threshold would involve allocating resources to improve performance of an executing instance and would therefore correlate to adjusting a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with Marr because virtual machine instances can be associated with users who can specify one or more threshold values for various operating metrics. When the processing load of an application executing on a user’s virtual machine instance exceeds the predetermined threshold, the system can allocate or reduce CPU capacity to meet the demand. Scaling of virtual machines can also be performed by allocating or deallocating memory or other hardware resources in response to a virtual machine instance nearing a certain percent capacity.
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.
Claims 1-7, 15, 18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Niu et al. (U.S. Patent No. US 20230222403 A1), hereinafter “Niu” and further in view of Bohannon et al. (U.S. Patent No. US 20220174154 A1), hereinafter “Bohannon,” Gupta et al. (JP Patent No. JP 7393847 B2), hereinafter “Gupta” and Marr et al. (U.S. Patent No. 20140058871 A1), hereinafter “Marr.”
With regards to Claim 1, Niu teaches:
and responsive to a lead time of a first service of the at least some services being below a lead time threshold, causing a throughput enhancement of an upstream service (Fig. 3, paragraphs 44-45, cost calculation processor 203, “a cost calculation processor may be used to facilitate the resource allocation method… The cost calculation processor 203 is also configured to receive data representative of whether the food preparation time t.sub.f is deemed to be ‘high’ or ‘low’... The cost calculation processor is configured to utilise allocation and prioritisation logic to allocate resources based on costs, taking into account the various variables and parameters discussed above.” Determining the lead time is below the lead time threshold corresponds to determining if t.sub.f. is below the t.sub.f threshold. The throughput enhancement of an upstream service correlates to the cost calculation processor allocating resources based on variables which include if the lead time is below the lead time threshold.)
Niu does not explicitly teach:
A method comprising: obtaining, for at least some services in a pipeline of interrelated services that process transactions, a corresponding service lead time, the corresponding service lead time quantifying for a corresponding service of the at least some services a first amount of time that an input transaction awaits servicing by the corresponding service;
wherein causing the throughput enhancement comprises:
dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances associated with the upstream service to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service.
However, Bohannon teaches:
A method comprising: obtaining, for at least some services in a pipeline of interrelated services that process transactions, a corresponding service lead time, the corresponding service lead time quantifying for a corresponding service of the at least some services a first amount of time that an input transaction awaits servicing by the corresponding service; (Paragraph 90, “callback cloud 101 may receive estimated wait time (EWT) information from an enterprise 120 such as a contact center. This information may be used to estimate the wait time for a caller before reaching an agent (or other destination, such as an automated billing system).” The estimated wait time information corresponds to the amount of time an input transaction awaits servicing.)
Additionally, Gupta teaches:
wherein causing the throughput enhancement comprises:
dynamically adjusting an allocation of computing resources allocated to a current set of instances associated with the upstream service (Fig. 5, dynamic pipeline program 112, step 502, 504, and 506, “Dynamic pipeline program 112 identifies the operation stage X to limit (step 502). In step 502, dynamic pipeline program 112 determines that stage X is behind in processing. In some embodiments, dynamic pipeline program 112 uses job execution optimization module 260 to determine that stage X is behind in processing based on input from throughput monitor 220. Dynamic pipeline program 112 determines whether sufficient resources are available (step 504). In step 504, dynamic pipeline program 112 determines whether sufficient resources are available to create a new instance of stage X, dynamic pipeline program 112 then continues to step 506… In some embodiments, sufficient resources include processor resources. In another embodiment, sufficient resources are available memory resources… Dynamic pipeline program 112 generates a new stage X instance (step 506).” The dynamic pipeline program identifying stage X as being behind in processing based on input from the throughput monitor correlates to a current set of instances associated with the upstream service. Dynamic pipeline program determines whether sufficient resources, which include memory and processor resources, are available to allocate at step 504. If there are sufficient resources, the dynamic pipeline program proceeds to step 506 and dynamically allocates additional resources to stage X in the form of generating a new instance, which corresponds to the throughput enhancement dynamically adjusting an allocation of computing resources to a current set of instances associated with the upstream service).
Gupta does not explicitly teach that the allocation of computing resources [is] allocated to an already executing instance and to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service. However, allocating computing resources to an already executing instance is a popular method of resource allocation as evidenced by Marr (Paragraphs 25, 27, and 38, “In various embodiments, the users (112, 113) are allowed to specify one or more threshold values for the various operating metrics associated with their virtual machines. As illustrated in the figure, when the processing load on the application 105 executing on the virtual machine instance 103 exceeds such a predetermined threshold, the system can allocate additional CPU 109 to the virtual machine instance 103 to meet the increased demand… In an alternative embodiment, the scaling of the virtual machine instance can be performed on a smooth continuum, e.g. by adding any arbitrary amount of CPU, memory or other resource capacity in any arbitrary increments, for example as required by the user application or service executing in the virtual machine and in accordance with defined metrics and thresholds... In operation 303, the automatic scaling service monitors one or more operating metrics of the virtual machine instance during the execution of the workload.” The automatic scaling service monitoring operating metrics of the virtual machine instance during the execution of the workload and automatically scaling the virtual machine by adding CPU or memory correlates to allocating computing resources to an already executing instance).
Additionally, adjusting a cycle time of the already executing instance is a benefit seen when dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances as evidenced by Marr (Paragraphs 25, 27, and 38-40, “In various embodiments, the users (112, 113) are allowed to specify one or more threshold values for the various operating metrics associated with their virtual machines. As illustrated in the figure, when the processing load on the application 105 executing on the virtual machine instance 103 exceeds such a predetermined threshold, the system can allocate additional CPU 109 to the virtual machine instance 103 to meet the increased demand… In an alternative embodiment, the scaling of the virtual machine instance can be performed on a smooth continuum, e.g. by adding any arbitrary amount of CPU, memory or other resource capacity in any arbitrary increments, for example as required by the user application or service executing in the virtual machine and in accordance with defined metrics and thresholds... In operation 303, the automatic scaling service monitors one or more operating metrics of the virtual machine instance during the execution of the workload… In operation 304, the service detects that the one or more metrics have exceeded a customer-defined threshold. For example, the service may detect that the CPU usage of the virtual machine instance have exceeded a usage threshold for a minimum time frame specified by the customer. In operation 305, the service can scale the virtual machine instance to increase or decrease capacity of various resources. In one embodiment, if the processing load has increased, the scaling service allocates additional computing resources to the virtual machine instance.” The automatic scaling service monitoring operating metrics of the virtual machine instance during the execution of the workload and automatically scaling the virtual machine by adding CPU or memory in response to one or more metrics exceeding a customer-defined threshold would involve allocating resources to improve performance of an executing instance and would therefore correlate to adjusting a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with obtaining, for at least some services in a pipeline of interrelated services that process transactions, a corresponding service lead time, the corresponding service lead time quantifying for a corresponding service of the at least some services a first amount of time that an input transaction awaits servicing by the corresponding service as taught by Bohannon because the queue wait times can be used to manage load balancing by providing an indicator of when to adjust the flow of traffic. High wait times could be an indicator to use detours or incentivized delays, which could help maintain a smooth queue flow (Bohannon: paragraph 158).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with wherein causing the throughput enhancement comprises: dynamically adjusting an allocation of computing resources allocated to a current set of instances associated with the upstream service as taught by Gupta because Niu’s techniques can be adapted for use in other shared economy services and can be extended for use in other resource allocation methods to reduce resource under-utilization (Niu: paragraph 83).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances and to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service as taught by Marr because virtual machine instances can be associated with users who can specify one or more threshold values for various operating metrics. When the processing load of an application executing on a user’s virtual machine instance exceeds the predetermined threshold, the system can allocate or reduce CPU capacity to meet the demand. Scaling of virtual machines can also be performed by allocating or deallocating memory or other hardware resources in response to a virtual machine instance nearing a certain percent capacity (Marr: paragraphs 23-24 and 26).
With regards to Claim 2, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 1 as referenced above. Gupta further teaches:
The method of claim 1, wherein causing the throughput enhancement of the upstream service further comprises causing an additional instance of the upstream service to be initiated (Fig. 3B, paragraph 20, job execution optimization module 260, “Job execution optimization module 260 checks with resource monitor 230 to determine whether it has sufficient system resources to support an additional instance of pipeline stage 2. If so, job execution optimization module 260 creates an additional instance of stage 2 (pipeline stage 2b in this example).” Job execution optimization module creating an additional instance of pipeline stage 2 corresponds to the throughput enhancement causing an additional instance to be initiated).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with causing the throughput enhancement of the upstream service further comprises causing an additional instance of the upstream service to be initiated as taught by Gupta because Niu’s techniques can be adapted for use in other shared economy services and can be extended for use in other resource allocation methods to reduce resource under-utilization (Niu: paragraph 83).
With regards to Claim 3, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 1 as referenced above. Gupta further teaches:
The method of claim 1, wherein dynamically adjusting the allocation of computing resources allocated to the current set of instances associated with the upstream service comprises allocating an additional amount of memory to the current set of instances associated with the upstream service (Fig. 5, dynamic pipeline program 112, steps 502, 504 and 506, “Dynamic pipeline program 112 identifies the operation stage X to limit (step 502). In step 502, dynamic pipeline program 112 determines that stage X is behind in processing. In some embodiments, dynamic pipeline program 112 uses job execution optimization module 260 to determine that stage X is behind in processing based on input from throughput monitor 220. Dynamic pipeline program 112 determines whether sufficient resources are available (step 504). In step 504, dynamic pipeline program 112 determines whether sufficient resources are available to create a new instance of stage X, dynamic pipeline program 112 then continues to step 506… In some embodiments, sufficient resources include processor resources. In another embodiment, sufficient resources are available memory resources… Dynamic pipeline program 112 generates a new stage X instance (step 506).” The dynamic pipeline program identifying stage X as being behind in processing based on input from the throughput monitor correlates to a current set of instances associated with the upstream service. Dynamic pipeline program determines whether sufficient resources, which include memory, are available to allocate at step 504. If there are sufficient memory resources, the dynamic pipeline program proceeds to step 506 and allocates additional memory in the form of generating a new instance, which corresponds to the throughput enhancement allocating an additional amount of memory).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with dynamically adjusting the allocation of computing resources allocated to the upstream service comprises allocating an additional amount of memory to the upstream service as taught by Gupta because Niu’s techniques can be adapted for use in other shared economy services and can be extended for use in other resource allocation methods to reduce resource under-utilization (Niu: paragraph 83).
With regards to Claim 4, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 1 as referenced above. Gupta further teaches:
The method of claim 1, further comprising:
obtaining, for each service in the pipeline of interrelated services that process transactions, a corresponding service cycle time, the corresponding service cycle time identifying a second amount of time for performing the corresponding service (Fig. 4, paragraphs 28 and 31, dynamic pipeline program 112, “Dynamic pipeline program 112 records the throughput of each intermediate stage (step 404). At step 404, dynamic pipeline program 112 uses job execution optimization module 260 to record the throughput of each operational stage in the pipeline based on input from throughput monitor 220… the dynamic pipeline program 112 calculates the difference between the actual execution time of a stage (and by extension a job)”. The dynamic pipeline program calculating the actual execution time of a stage through the throughput of each intermediate stage corresponds to obtaining the corresponding service cycle time).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with obtaining, for each service in the pipeline of interrelated services that process transactions, a corresponding service cycle time, the corresponding service cycle time identifying a second amount of time for performing the corresponding service as taught by Gupta because bottlenecks can affect the quality of service. Mechanisms to identify when disruptions to the wait time occur can be used to trigger further action such as allocating additional resources, which regulate quality of service requirements (Gupta: paragraphs 31-33, 37).
With regards to Claim 5, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 4 as referenced above.
Gupta further teaches:
The method of claim 4, further comprising:
determining the throughput enhancement based on one or more service cycle times. (Fig. 4, paragraphs 31 and 33, dynamic pipeline program 112, step 412, “the dynamic pipeline program 112 calculates the difference between the actual execution time of a stage (and by extension a job) and the expected execution time under ideal conditions for the same stage (and by extension the same job). is determined to exceed a threshold, then an outlier data point is detected… Dynamic pipeline program 112 identifies stages that cause bottlenecks (step 412). In step 412, if the dynamic pipeline program 112 determines that QoS is affected, the dynamic pipeline program 112 determines whether any operator or operators in the stage are Determine whether it should be created on an instance of”. The dynamic pipeline program calculating the actual execution time of a stage corresponds to the service cycle time. Using outliers of the actual execution time of a stage to determine if additional instances should be created corresponds to determining the throughput enhancement based on service cycle times).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with determining the throughput enhancement based on one or more service cycle times as taught by Gupta because bottlenecks can affect the quality of service. Mechanisms to identify when disruptions to the wait time occur can be used to trigger further action such as allocating additional resources, which regulate quality of service requirements (Gupta: paragraphs 31-33, 37).
With regards to Claim 6, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 1 as referenced above. Niu further teaches:
The method of claim 1, further comprising:
determining a throughput elapsed time for the pipeline of interrelated services, the throughput elapsed time identifying a total amount of time for processing a single transaction by the pipeline of interrelated services (Paragraph 61, “determine, in respect of each said service request, a lead time comprising a time period between a time at which a respective service request is received and the associated delivery time”. The period of time between when a service request is received and the associated delivery time corresponds to the total amount of time for processing a single transaction).
With regards to Claim 7, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 1 as referenced above. Bohannon further teaches:
The method of claim 1, further comprising:
obtaining, for each service in the pipeline of interrelated services that process transactions, an updated service lead time, the updated service lead time identifying an updated first amount of time that the input transaction awaits servicing by the corresponding service (Paragraphs 25 and 90, “According to various aspects of the system and method; wherein the request is selected from the group consisting of a request to join a queue, a request to leave a queue, a request to transfer to a different queue, a request for the current wait time of a queue… Additionally, callback cloud 101 may receive estimated wait time (EWT) information from an enterprise 120 such as a contact center. This information may be used to estimate the wait time for a caller before reaching an agent (or other destination, such as an automated billing system)”. Requesting the current wait time of the queue, which is the wait time for a caller before reaching an agent and can be done at any time, corresponds to an updated service lead time).
With regards to Claim 15, Niu in view of Bohannon, Gupta and Marr teaches:
A computing system comprising:
a memory; and
a processor device coupled to the memory to:
obtain, for at least some services in a pipeline of services that process transactions, a corresponding service lead time and a corresponding service cycle time, the corresponding service lead time quantifying for a corresponding service of the at least some services a first amount of time that an input transaction awaits servicing by the corresponding service (Bohannon: Paragraph 90, “callback cloud 101 may receive estimated wait time (EWT) information from an enterprise 120 such as a contact center. This information may be used to estimate the wait time for a caller before reaching an agent (or other destination, such as an automated billing system).” The estimated wait time information corresponds to the amount of time an input transaction awaits servicing), the corresponding service cycle time identifying a second amount of time for performing the respective service (Gupta: Fig. 4, paragraphs 28 and 31, dynamic pipeline program 112, “Dynamic pipeline program 112 records the throughput of each intermediate stage (step 404). At step 404, dynamic pipeline program 112 uses job execution optimization module 260 to record the throughput of each operational stage in the pipeline based on input from throughput monitor 220… the dynamic pipeline program 112 calculates the difference between the actual execution time of a stage (and by extension a job)”. The dynamic pipeline program calculating the actual execution time of a stage through the throughput of each intermediate stage corresponds to obtaining the corresponding service cycle time);
and responsive to occurrence of a trigger event, cause a throughput enhancement of an upstream service (Niu: Fig. 3, paragraphs 44-45, cost calculation processor 203, “a cost calculation processor may be used to facilitate the resource allocation method... The cost calculation processor is configured to utilise allocation and prioritisation logic to allocate resources based on costs, taking into account the various variables and parameters discussed above”. The resource allocation method executed by the cost calculation processor correlates to causing a throughput enhancement of an upstream service),
wherein, to cause the throughput enhancement of the upstream service, the processor device is to:
dynamically adjust an allocation of computing resources allocated to a current set of instances associated with the upstream service (Gupta: Fig. 5, dynamic pipeline program 112, step 502, 504, and 506, “Dynamic pipeline program 112 identifies the operation stage X to limit (step 502). In step 502, dynamic pipeline program 112 determines that stage X is behind in processing. In some embodiments, dynamic pipeline program 112 uses job execution optimization module 260 to determine that stage X is behind in processing based on input from throughput monitor 220. Dynamic pipeline program 112 determines whether sufficient resources are available (step 504). In step 504, dynamic pipeline program 112 determines whether sufficient resources are available to create a new instance of stage X, dynamic pipeline program 112 then continues to step 506… In some embodiments, sufficient resources include processor resources. In another embodiment, sufficient resources are available memory resources… Dynamic pipeline program 112 generates a new stage X instance (step 506).” The dynamic pipeline program identifying stage X as being behind in processing based on input from the throughput monitor correlates to a current set of instances associated with the upstream service. Dynamic pipeline program determines whether sufficient resources, which include memory and processor resources, are available to allocate at step 504. If there are sufficient resources, the dynamic pipeline program proceeds to step 506 and dynamically allocates additional resources to stage X in the form of generating a new instance, which corresponds to the throughput enhancement dynamically adjusting an allocation of computing resources to a current set of instances associated with the upstream service).
Niu does not explicitly teach that the trigger event is associated with at least one of a lead time of a first service of the at least some services or a cycle time of the first service. However, determining trigger events based on lead time or cycle time is a popular method of detecting occurrences of events as evidenced by Bohannon (Paragraph 136, “upon determination of the number of people in a queue, queue service 3200 may automatically predict and adjust the queue wait times and subsequently the throughput of the users being dequeued”. The queue service adjusting the throughput of users being dequeued in response to the number of people or services in the queue and the current estimated queue wait time corresponds to determining a trigger event based on the lead time of a first service).
Gupta does not explicitly teach that the allocation of computing resources [is] allocated to an already executing instance and to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service. However, allocating computing resources to an already executing instance is a popular method of resource allocation as evidenced by Marr above (Paragraphs 25, 27, and 38). Additionally, adjusting a cycle time of the already executing instance is a benefit seen when dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances as evidenced by Marr above (Paragraphs 25, 27, and 38).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with the corresponding service cycle time identifying a second amount of time for performing the respective service and wherein, to cause the throughput enhancement of the upstream service, the processor device is to: dynamically adjust an allocation of computing resources allocated to a current set of instances associated with the upstream service as taught by Gupta and the obtain, for at least some services in a pipeline of services that process transactions, a corresponding service lead time and a corresponding service cycle time, the corresponding service lead time quantifying for a corresponding service of the at least some services a first amount of time that an input transaction awaits servicing by the corresponding service and determine a trigger event based on at least one of a lead time of a first service of the at least some services or a cycle time of the first service as taught by Bohannon because the queue wait times can be used to manage load balancing by providing an indicator of when to adjust the flow of traffic. High wait times could be an indicator to use detours or incentivized delays, which could help maintain a smooth queue flow (Bohannon: paragraph 158). Additionally, mechanisms to identify when disruptions to the wait time occur can be used to trigger further action such as allocating additional resources, which regulate quality of service requirements (Gupta: paragraphs 31-33, 37). Additionally, Niu’s techniques can be adapted for use in other shared economy services and can be extended for use in other resource allocation methods to reduce resource under-utilization (Niu: paragraph 83).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances and to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service as taught by Marr because virtual machine instances can be associated with users who can specify one or more threshold values for various operating metrics. When the processing load of an application executing on a user’s virtual machine instance exceeds the predetermined threshold, the system can allocate or reduce CPU capacity to meet the demand. Scaling of virtual machines can also be performed by allocating or deallocating memory or other hardware resources in response to a virtual machine instance nearing a certain percent capacity (Marr: paragraphs 23-24 and 26).
With regards to Claim 18, Niu teaches:
A non-transitory computer-readable storage medium that includes executable instructions to cause one or more processor devices of one or more computing devices to: obtain a plurality of service lead times, wherein the plurality of service lead times are associated with a plurality of services of a pipeline of services that process transactions, wherein each service lead time of the plurality of service lead times is associated with a respective service of the plurality of services (Fig. 2, paragraph 38, “Using this driver data, the routing engine 205 is configured to calculate, for each driver and at the point in time when a new food delivery order is received… for each in-transit driver, an estimated second time value t.sub.1 which is the estimated travel time from their current location to the drop-off point for the previous order.” The t.sub.1 value that is calculated when a new food delivery order is received for each driver correlates to a plurality of service lead times associated with a plurality of services), wherein each service lead time identifies a first amount of time between a completion of a first transaction of the respective service and a beginning of a second transaction of the respective service (Fig. 2, paragraph 38, “Using this driver data, the routing engine 205 is configured to calculate, for each driver and at the point in time when a new food delivery order is received… for each in-transit driver, an estimated second time value t.sub.1 which is the estimated travel time from their current location to the drop-off point for the previous order.” The t.sub.1 value represents the time from the drop off point of the previous order to the current location when a new order is received and correlates to the time between the completion of a transaction and the beginning of a second transaction);
and responsive to occurrence of a trigger event associated with the one or more of the plurality of service lead times, cause a throughput enhancement of a particular service of the plurality of services (Fig. 3, paragraphs 39 and 44, cost calculation processor 203, “The values t.sub.2 (and, where applicable, t.sub.1) for each driver are fed to the cost calculation processor 203… a cost calculation processor may be used to facilitate the resource allocation method... The cost calculation processor is configured to utilise allocation and prioritisation logic to allocate resources based on costs, taking into account the various variables and parameters discussed above.” Using t.sub.1 for each driver in the cost calculation processor to determine the resource allocation method corresponds to the occurrence of a trigger event associated with a plurality of service lead times. The throughput enhancement of a service correlates to the cost calculation processor allocating resources based on variables which include the lead time).
Niu fails to disclose wherein the trigger event is descriptive of a queue backlog;
and wherein, to cause the throughput enhancement, the one or more processor devices are to:
dynamically adjust an allocation of computing resources allocated to an already executing instance of a current set of instances associated with the particular service of the plurality of services to adjust a cycle time of the already executing instance,
wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the particular service of the plurality of services.
However, Bohannon teaches:
wherein the trigger event is descriptive of a queue backlog (Paragraph 136, “one or more IoT devices and/or sensors may be used to detect the number of people in the physical queue and use that information in conjunction with queue load balancer 3303 and/or prediction module 3304 to automatically adjust the throughput of the users being dequeued… upon determination of the number of people in a queue, queue service 3200 may automatically predict and adjust the queue wait times and subsequently the throughput of the users being dequeued”. The queue service adjusting the throughput of users being dequeued in response to the queue wait times and number of people in the physical queue correlates to the trigger event being descriptive of a queue backlog);
Additionally, Gupta teaches:
and wherein, to cause the throughput enhancement, the one or more processor devices are to:
dynamically adjust an allocation of computing resources allocated to a current set of instances associated with the particular service of the plurality of services (Fig. 5, dynamic pipeline program 112, step 502, 504, and 506, “Dynamic pipeline program 112 identifies the operation stage X to limit (step 502). In step 502, dynamic pipeline program 112 determines that stage X is behind in processing. In some embodiments, dynamic pipeline program 112 uses job execution optimization module 260 to determine that stage X is behind in processing based on input from throughput monitor 220. Dynamic pipeline program 112 determines whether sufficient resources are available (step 504). In step 504, dynamic pipeline program 112 determines whether sufficient resources are available to create a new instance of stage X, dynamic pipeline program 112 then continues to step 506… In some embodiments, sufficient resources include processor resources. In another embodiment, sufficient resources are available memory resources… Dynamic pipeline program 112 generates a new stage X instance (step 506).” The dynamic pipeline program identifying stage X as being behind in processing based on input from the throughput monitor correlates to a current set of instances associated with the upstream service. Dynamic pipeline program determines whether sufficient resources, which include memory and processor resources, are available to allocate at step 504. If there are sufficient resources, the dynamic pipeline program proceeds to step 506 and dynamically allocates additional resources to stage X in the form of generating a new instance, which corresponds to the throughput enhancement dynamically adjusting an allocation of computing resources to a current set of instances associated with the upstream service).
Gupta does not explicitly teach that the allocation of computing resources [is] allocated to an already executing instance and to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service. However, allocating computing resources to an already executing instance is a popular method of resource allocation as evidenced by Marr above (Paragraphs 25, 27, and 38). Additionally, adjusting a cycle time of the already executing instance is a benefit seen when dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances as evidenced by Marr above (Paragraphs 25, 27, and 38).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with the trigger event is descriptive of a queue backlog as taught by Bohannon because cloud-based virtual queuing platforms provide benefits such as cost savings, security, flexibility, mobility, insight offerings, increased collaboration, enhanced quality control, redundant disaster recovery, loss prevention, automatic software updates, a competitive edge, and sustainability (Bohannon: paragraph 127).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with and wherein, to cause the throughput enhancement, the one or more processor devices are to: dynamically adjust an allocation of computing resources allocated to a current set of instances associated with the particular service of the plurality of services as taught by Gupta because Niu’s techniques can be adapted for use in other shared economy services and can be extended for use in other resource allocation methods to reduce resource under-utilization (Niu: paragraph 83).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with dynamically adjusting an allocation of computing resources allocated to an already executing instance of a current set of instances and to adjust a cycle time of the already executing instance, wherein the cycle time is an amount of time for the already executing instance to complete a single cycle of the upstream service as taught by Marr because virtual machine instances can be associated with users who can specify one or more threshold values for various operating metrics. When the processing load of an application executing on a user’s virtual machine instance exceeds the predetermined threshold, the system can allocate or reduce CPU capacity to meet the demand. Scaling of virtual machines can also be performed by allocating or deallocating memory or other hardware resources in response to a virtual machine instance nearing a certain percent capacity (Marr: paragraphs 23-24 and 26).
With regards to Claim 20, the method of Claims 7-8 perform the same steps as the manufacture of Claim 20, and Claim 20 is therefore rejected using the same rationale set forth above in the rejection of Claims 7-8.
Claims 8 and 16-17 is rejected under 35 U.S.C. 103 as being unpatentable over Niu, Bohannon, Gupta and Marr further in view of Liu et al. (U.S. Patent No. US 20100157800 A1), hereinafter “Liu”.
With regards to Claim 8, Niu in view of Bohannon, Gupta and Marr teaches the method of Claim 7 as referenced above. Bohannon further teaches:
The method of claim 7, further comprising:
determining that an updated lead time of a second service is below the lead time threshold (Paragraph 161, “In a first step 4700, the average wait time (wait time(s) could also be measured against some other parameter, e.g., even if one queued person has to wait more than X minutes, etc.) is compared a set threshold limit”. The average wait time includes lead times of additional services, and it is updated upon starting step 4700. The example given where if a single person has to wait more than a certain amount of time correlates to an updated lead time being below the lead time threshold); and in response to determining that the updated lead time of the second service is below the lead time threshold (Paragraph 163, “the wait time threshold 4700 may be compared against the time decreased by adding additional queues 4708, and if the wait time difference is significant enough, shuffle queued people around”. The wait time threshold correlates to the lead time threshold. Comparing the wait time threshold against the time decreased by adding additional queues involves comparing the wait time threshold to each updated wait time, and therefore correlates to determining the updated lead time is below a lead time threshold), but fails to disclose causing a second throughput enhancement of the upstream service.
However, Liu teaches:
causing a second throughput enhancement of the upstream service (Paragraphs 24 and 26, “the users (112, 113) are allowed to specify one or more threshold values for the various operating metrics associated with their virtual machines… the system can also scale the virtual machine instances (103, 104) by allocating or de-allocating memory 116, and/or other hardware resources (e.g., NICs, GPU capacity, etc.). For example, if the virtual machine instance 103 is approaching 90% of memory capacity, the system may allocate additional memory (e.g., physical memory, virtual memory) to the virtual machine instance 103”. The system allocating or deallocating memory of virtual machine instances correlates to a throughput enhancement of the upstream service. Since this allocation is based on a threshold, each time the threshold value is below the threshold, memory is allocated to the virtual machine. This correlates to a second throughput enhancement of the upstream service).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with causing a second throughput enhancement of the upstream service as taught by Liu because automatically allocating computing resources to virtual machine instances based on user-defined thresholds enables the virtual machine instances to adapt on-demand for the resources it provides (Liu: paragraph 12).
With regards to Claim 16, Niu in view of Bohannon, Gupta and Marr teaches the system of Claim 15 as referenced above, but fails to disclose The computing system of claim 15, wherein the trigger event is based on a queue length of the first service being above a queue threshold, the queue length of the first service being based on at least one of the lead time of the first service or the cycle time of the first service;
However, Liu teaches:
The computing system of claim 15, wherein the trigger event is based on a queue length of the first service being above a queue threshold, the queue length of the first service being based on at least one of the lead time of the first service or the cycle time of the first service (paragraph 23, “operating threshold value step S320, The operating threshold value is set according to the relative proportion between the number of the data packets in the queue and the maximum volume of the queue… Afterward, a cycle time is set (Step S340) to determine a time interval for the network equipment to detect the number of the data packets in each queue. Then, it is determined whether the number of the data packets in the queue satisfies the operating threshold value (Step S350).” The operating threshold value correlates to the queue threshold, and cycle time being set to determine the time interval for detecting the number of data packets in each queue correlates to the queue length of the first service being based on at least the cycle time of the first service).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with wherein the trigger event is based on a queue length of the first service being above a queue threshold, the queue length of the first service being based on at least one of the lead time of the first service or the cycle time of the first service as taught by Liu because preventing a large number of data packets flowing into a single queue maintains the integrity and stability of packet processing even during heavy traffic (Liu: paragraph 33).
With regards to Claim 17, Niu in view of Bohannon, Gupta, Marr and Liu teaches the system of Claim 16 as referenced above. Bohannon further teaches:
The computing system of claim 15, wherein the lead time of the first service is less than an upstream lead time of the upstream service (Paragraph 134, queue load balancer 3303 and prediction module 3304, “if a user walks up and enters the virtual queue, the estimated wait time is taking into account all the users ahead of him or her including the ones in overlapping time slots”. The estimated wait time uses the wait times of all users ahead, which correlates to the upstream lead time of the upstream service. Determining if the lead time is less than upstream lead times would occur while estimating the wait time and place in the queue of the new user).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with wherein the lead time of the first service is less than an upstream lead time of the upstream service as taught by Bohannon because queue wait times can be used to manage load balancing by providing an indicator of when to adjust the flow of traffic. High wait times could be an indicator to use detours or incentivized delays, which could help maintain a smooth queue flow (Bohannon: paragraph 158).
Claim 19 is rejected under 35 U.S.C. 103 as being unpatentable over Niu, Bohannon, Gupta and Marr further in view of Dorofiyenko et al. (U.S. Patent No. US 20210306280 A1), hereinafter “Dorofiyenko”.
With regards to Claim 19, Niu in view of Bohannon, Gupta and Marr teaches the machine of Claim 18 as referenced above, but fails to disclose the non-transitory computer-readable storage medium of claim 18, wherein the queue backlog is determined based on a comparison between two or more service lead times of the plurality of service lead times.
However, Dorofiyenko teaches:
The non-transitory computer-readable storage medium of claim 18, wherein the queue backlog is determined based on a comparison between two or more service lead times of the plurality of service lead times. (Fig. 5-6, paragraph 137, “the transportation matching system 104 can provide a queue request notification prompting the user to join a digital requestor queue that is shorter and/or has a lower wait time. For example, the transportation matching system 104 can (1) receive a user request to join the digital requestor queue 506 and (2) determine, based on comparing queue modifiers, to direct the requestor to the digital requestor queue 508. More specifically, in this example, the transportation matching system 104 determines that a queue threshold relative to a current queue status of the digital requestor queue 506 reflects a disproportionately high wait time compared to a queue threshold relative to a current queue status of the digital requestor queue 508” The multiple digital requestor queues 506 and 508 each have an estimated wait time, which correlates to the plurality of service lead times. Comparing two or more service lead times of the plurality of service lead times would occur while determining if queue 506 or 508 has a shorter wait time).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Niu with the queue backlog is determined based on a comparison between two or more service lead times of the plurality of service lead times as taught by Dorofiyenko because finding a digital requestor queue that is shorter or has a lower wait time can reduce the number of disproportionately high wait times from certain queues and allow integration for premium queues that can further reduce wait times (Dorofiyenko: paragraphs 137-138).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Examiner Selina Hu, whose telephone number is 571-272-5428. The examiner can normally be reached on Monday-Friday from 8:30 am to 5:00 pm PT.
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, Chat Do can be reached on (571) 272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
The publicPAIR and privatePAIR systems are no longer available. 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.
/SELINA HU/ Examiner, Art Unit 2193
/Chat C Do/Supervisory Patent Examiner, Art Unit 2193