DETAILED ACTION
This communication is in response to the application filed on November 18, 2024, in which claims 1-20 are pending in the application. Claims 1, 8, and 15 are in independent form.
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 .
Specification
The disclosure is objected to because of the following informalities:
[0043] recites "req₅ > s₃, req₁ > s₂, req₃ > s₁, req₄ > s₅, req₂ > s₄." The ">" symbol here denotes the assignment of each sorted request to its corresponding sorted execution environment but reads as a greater-than comparison. The assignments should be denoted with "to" or an arrow (e.g., "req₅ to s₃").
[0047] recites "Next, at S260, and also as described, the N requests are sorted in descending order of QoS as shown in FIG. 3." Step numeral S260 designates the requests-remaining determination of FIG. 2; the sorting of the N requests is designated S620 in FIG. 6. The passage should recite "at S620."
[0049] recites "if the number determined at S650 is 8, the row including the range “3 < x <=7” is identified and corresponding execution environment s₁ is determined at S660." Per FIG. 8, the range "3 < x <= 7" corresponds to execution environment s₅, and the number 8 falls within the range "7 < x <= 11," which corresponds to execution environment s₁. The passage should recite "7 < x <= 11."
The following minor typographical errors should also be corrected: [0019] recites "cause bottenecks in low-resource conditions" (should recite "bottlenecks"); [0024] recites "may include but are not limited to values not limited to CPU utilization percentage" (duplicated phrase, should recite "may include but are not limited to CPU utilization percentage"); [0025] recites "provide metric values to cache 120" (elsewhere "cache service 120").
Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 15-20 rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter, specifically signals per se.
Claim 15 recites "[o]ne or more computer-readable media storing program code." No recitation of “computer-readable media” is described in the specification. The specification states that program code embodying the described processes "may be stored by any non-transitory tangible medium" (specification as filed [0034]), which is permissive and does not limit the claimed media to non-transitory forms. Under the broadest reasonable interpretation, the claimed "computer-readable media" therefore encompasses transitory, propagating signals per se. A transitory, propagating signal does not fall within any of the four statutory categories of invention (MPEP 2106.03). The specification must clearly disavow that the medium includes signals, waves or transitory forms to overcome this rejection.
Claims 16-20 depend on claim 15 and inherit the deficiency and are therefore rejected using the same rationale.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception without significantly more.
Step 1:
Claims 1-7 are directed to a method and therefore is a process, which is one of the statutory categories of inventions. Claims 8-14 are directed to a system comprising a memory and one or more processing units and therefore is a machine, which is one of the statutory categories of inventions. Claims 15-20 are directed to one or more computer-readable media and, if interpreted as limited to non-transitory media, is a manufacture, which is one of the statutory categories of inventions. As set forth above, however, the broadest reasonable interpretation of the claimed media encompasses transitory signals, which do not fall within any statutory category.
Step 2A, Prong 1:
Claims 1, 8, and 15 recite the limitations "associating the first request with the first execution environment based on a first relationship between the first QoS level and the first performance score" and "associating the second request with the second execution environment based on a second relationship between the second QoS level and the second performance score." As drafted, under their broadest reasonable interpretation, these functions recite the abstract idea of a mental process. For example, a person can review two service requests together with the service level of the customer that sent each, review a reported score for each of two available servers, and judge which request should be handled by which server by weighing each service level against each score. The limitations encompass a human mind carrying out the functions through observation, evaluation, judgement and/or opinion, or even with the aid of pen and paper. Thus, these limitations recite and fall within the "Mental Processes" grouping of abstract ideas under Prong 1 (MPEP 2106.04(a)(2)(III)).
Step 2A, Prong 2:
The claims recite the additional elements "a computer system" (claim 1), "a memory storing executable program code" and "one or more processing units to execute the executable program code" (claim 8), and "one or more computer-readable media storing program code executable by a computing system" (claim 15), which are generic computer components recited at a high level of generality, such that they amount to no more than mere instructions to apply the exception using a generic computer component (MPEP 2106.05(f)).
The additional elements "receiving a first request to a first service from a first tenant associated with a first quality-of-service (QoS) level," "receiving a second request to the first service from a second tenant associated with a second QoS level," "retrieving a first performance score for a first execution environment," and "retrieving a second performance score for a second execution environment" are mere data gathering that supplies the information upon which the recited evaluation is performed, which is considered insignificant extra-solution activity (MPEP 2106.05(g)).
The additional elements "distributing the first request to the first execution environment based on the association of the first request with the first execution environment" and "distributing the second request to the second execution environment based on the association of the second request with the second execution environment" are the transmission of the received requests to the selected execution environments, which is mere data transmission of the results of the recited evaluation, which is considered insignificant post-solution activity (MPEP 2106.05(g)).
The recitations of the "first service," the first and second "tenant[s]," and the first and second "execution environment[s]" do no more than generally link the use of the exception to the particular technological environment of multi-tenant service computing (MPEP 2106.05(h)).
Accordingly, the additional elements do not integrate the recited judicial exception into a practical application, and the claim is therefore directed to the judicial exception.
Step 2B:
The limitations "a computer system" (claim 1), "a memory storing executable program code" and "one or more processing units to execute the executable program code" (claim 8), and "one or more computer-readable media storing program code executable by a computing system" (claim 15) are merely generic computer or generic computer components to apply the judicial exception, which cannot provide an inventive concept.
The limitations "receiving a first request to a first service from a first tenant associated with a first quality-of-service (QoS) level" and "receiving a second request to the first service from a second tenant associated with a second QoS level" are receiving or transmitting data over a network, a computer function the courts have recognized as well-understood, routine, and conventional activity when claimed in a merely generic manner (MPEP 2106.05(d)(II)(i)).
The limitations "retrieving a first performance score for a first execution environment" and "retrieving a second performance score for a second execution environment" are storing and retrieving information in memory, a computer function the courts have recognized as well-understood, routine, and conventional activity when claimed in a merely generic manner (MPEP 2106.05(d)(II)(iv)).
The recitations of the "first service," the "tenant[s]," and the "execution environment[s]" do no more than generally link the use of the exception to the particular technological environment of multi-tenant service computing, which cannot provide an inventive concept.
The limitations "distributing the first request to the first execution environment based on the association" and "distributing the second request to the second execution environment based on the association" are transmitting data over a network, a computer function the courts have recognized as well-understood, routine, and conventional activity when claimed in a merely generic manner (MPEP 2106.05(d)(II)(i)).
Accordingly, the additional elements do not amount to significantly more than the judicial exception, thus cannot provide an inventive concept.
Dependent Claims:
Claim 2 recites calculating a first range of values based on the first QoS level and the second QoS level and associating the first execution environment with the first range based on the first performance score. Calculating a range of values from two values is a mathematical calculation falling within the "Mathematical Concepts" grouping (MPEP 2106.04(a)(2)(I)) and associating an environment with a range based on a score is an evaluation and judgment that can be practically performed in the human mind or with pen and paper (MPEP 2106.04(a)(2)(III)). These limitations further narrow the recited abstract idea, and do not amount to significantly more.
Claim 3 recites adding the first QoS level to the second QoS level to determine a first sum, setting a lower bound of the first range as the second level of QoS, and setting an upper bound of the first range as the first sum. Adding two values and setting the bounds of a range are mathematical calculations and relationships falling within the "Mathematical Concepts" grouping (MPEP 2106.04(a)(2)(I)). These limitations further narrow the recited abstract idea, and do not amount to significantly more.
Claim 4 recites determining a lowest QoS level, generating a random number between the lowest QoS level and the first sum, and determining the random number is within the first range. Determining a lowest value and determining whether a number is within a range are evaluations that can be practically performed in the human mind or with pen and paper (MPEP 2106.04(a)(2)(III)) and generating a random number between two values is a mathematical calculation falling within the "Mathematical Concepts" grouping (MPEP 2106.04(a)(2)(I)). These limitations further narrow the recited abstract idea, and do not amount to significantly more.
Claim 5 recites sorting the first request and the second request into a first sorted list according to the first QoS level and the second QoS level, sorting the first execution environment and the second execution environment into a second sorted list according to the first performance score and the second performance score, and associating requests of the first sorted list to execution environments located at a corresponding list position of the second sorted list. Sorting items by value and matching the items at corresponding positions of two sorted lists are evaluations and judgments that can be practically performed in the human mind or with pen and paper, further narrowing the recited mental process (MPEP 2106.04(a)(2)(III)), and do not amount to significantly more.
Claim 6 recites wherein a probability that a request is distributed to an execution environment is directly related to a performance score of the execution environment, which describes a mathematical relationship between the probability of the distribution and the performance score, falling within the "Mathematical Concepts" grouping (MPEP 2106.04(a)(2)(I)), and does not amount to significantly more.
Claim 7 recites wherein the first request and the second request are distributed in descending order of QoS level, which specifies the order in which the results of the recited evaluation are output. The ordered distribution is recited at a high level of generality without any description of the mechanism for accomplishing it, which is equivalent to the words "apply it" and amounts to no more than mere instructions to apply the judicial exception (MPEP 2106.05(f)), is well-understood, routine, and conventional activity when claimed in a merely generic manner (MPEP 2106.05(d)(II)(i)), and does not amount to significantly more.
As per claim 9, it has similar limitations to claim 2 and is therefore rejected using the same rationale.
As per claim 10, it has similar limitations to claim 3 and is therefore rejected using the same rationale.
As per claim 11, it has similar limitations to claim 4 and is therefore rejected using the same rationale.
As per claim 12, it has similar limitations to claim 5 and is therefore rejected using the same rationale.
As per claim 13, it has similar limitations to claim 6 and is therefore rejected using the same rationale.
As per claim 14, it has similar limitations to claim 7 and is therefore rejected using the same rationale.
As per claim 16, it has similar limitations to claim 2 and is therefore rejected using the same rationale.
As per claim 17, it has similar limitations to claim 3 and is therefore rejected using the same rationale.
As per claim 18, it has similar limitations to claim 4 and is therefore rejected using the same rationale.
As per claim 19, it has similar limitations to claim 5 and is therefore rejected using the same rationale.
As per claim 20, it has similar limitations to claim 6 and is therefore rejected using the same rationale.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 3, 10, and 17 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 3 recites the limitation "setting a lower bound of the first range as the second level of QoS" in the second step. There is insufficient antecedent basis for this limitation in the claim. Claim 1, which claim 3 depends on, introduce "a second QoS level", but not "a second level of QoS". Reciting "the second QoS level" would resolve the defect. For examination purposes, "the second level of QoS" is interpreted as the second QoS level recited in the respective independent claims.
As per claim 10, it has similar limitations to claim 3 and is therefore rejected using the same rationale.
As per claim 17, it has similar limitations to claim 3 and is therefore rejected using the same rationale.
Claims 4, 11, and 18, which depend on claims 3, 10, and 17, respectively, also incorporate the indefinite limitation of the claims from which they depend and are similarly rejected on that basis.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claim(s) 1, 8, and 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over over Uluderya et al. (US 2014/0173130 A1) (hereinafter Uluderya) in view of Mehta et al. (US 2015/0058484 A1) (hereinafter Mehta).
As per claim 1, Uluderya primarily teaches the invention as claimed including:
A method for distributing requests in a computer system comprising:
receiving a first request to a first service from a first tenant ([0081] at optional operation 920, a request may be received from a client along with client information (e.g., client type and/or request type); [0001] a word processing application provided as a web application may receive a request from a client application to open a document ...; [0041] client 358 of tenant 1 may submit a request to request manager 330 of a server farm hosting multiple tenants);
receiving a second request to the first service from a second tenant ([0023] servers 104 and 106 may receive requests from respective client applications and forward those to request management servers 101 configured to route the requests to proper servers; [0001] a word processing application provided as a web application may receive a request from a client application to open a document ...; [0041] client 358 of tenant 1 may submit a request to request manager 330 of a server farm hosting multiple tenants; [0027] the client information may identify a client type such as a bot, a real user, a client associated with a particular tenant of the server farm ...; The examiner notes that the farm receives a plurality of requests to the hosted application from clients of its multiple tenants, and a received request from a client of a different tenant than the first is the claimed second request);
retrieving a first performance score for a first execution environment. The examiner interprets the performance score, as used in the specification, as a value reflecting metrics which represent the responsiveness of an execution environment (specification as filed [0024] values of any suitable metrics which may represent the responsiveness of an execution environment. Metrics 122 may include but are not limited to values not limited to CPU utilization percentage, memory utilization percentage, system load and count of processing tasks). Uluderya teaches retrieving that value as the server health score derived from the server metrics ([0081] server health information may be received in headers of service communications from servers in a service infrastructure as part of the regular system exchanges; [0026] the health status may be a single score, multiple scores (for groups or each of the health metrics), or more detailed information (health metric value); The examine notes that the health metrics are the processor capacity, memory capacity, bandwidth, and current load of the server ([0025]));
retrieving a second performance score for a second execution environment ([0025] the server health status may be provided to the request management servers 101 by the individual servers in form of a score or more detailed information (118) ...; The examine notes that each individual server provides its own score, so the second environment's score is retrieved in the same manner);
associating the first request with the first execution environment based on a first relationship between the first QoS level and the first performance score ([0051] if health weighting is turned on, the weights may be further adjusted using health information to add weight to healthier targets and remove weight from less healthy targets. If client (client type, request type) is also used in the decision making process, further weighting based on that information may be applied);
associating the second request with the second execution environment based on a second relationship between the second QoS level and the second performance score ([0051] once the routing target weights are adjusted using the enabled routing weight schemes, they may be used to select a single target at weighted-random; The examiner notes that the adjusted weighting selects a target for each received request);
distributing the first request to the first execution environment based on the association of the first request with the first execution environment ([0051] RLB 476 may select a single target to which to send the request. The target may be selected using the routing weight schemes described previously or similar approaches; The examiner notes that the routing weight schemes are the health and client weighting of the associating step); and
distributing the second request to the second execution environment based on the association of the second request with the second execution environment ([0059] in order to route the request to the final target, once determined, a new request may be created. The incoming request may be copied to this new request including values such as: headers, cookies, request body, etc.; The examiner notes that each received request is sent to the target selected for it).
Uluderya does not explicitly teach:
the first tenant associated with a first quality-of-service (QoS) level;
the second tenant associated with a second QoS level.
However, Mehta teaches:
the first tenant associated with a first quality-of-service (QoS) level ([0028] the respective QoS given to each tenant can be defined based on a SLA between a tenant and the service provider; [0028] a SLA is a contract between a tenant and a service provider and can define conditions of usage, QoS, and the like);
the second tenant associated with a second QoS level (Abstract determining weights for selecting requests from a plurality of tenant queues in a multi-tenant system; The examiner notes that each tenant of the plurality has its own SLA-defined QoS).
Uluderya and Mehta are both concerned with managing the servicing of requests received from multiple tenants sharing an application and are therefore combinable/modifiable.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Uluderya in view of Mehta by defining each tenant's QoS level in a service level agreement and applying that defined level in Uluderya's client weighting when it adjusts the routing target weights.
Modification would improve consistency of the performance experienced by each tenant because one tenant's use of the shared application does not influence the performance experienced by the other tenants as taught by Mehta ([0028]).
As per claim 8, it has similar limitations as claim 1 and is therefore rejected using the same rationale. Mehta further teaches a memory storing executable program code; and one or more processing units to execute the executable program code to cause the system to perform the operations ([0073] the processor 410 is capable of processing instructions stored in the memory 420 or on the storage device 430 ...; [0074] the memory 420 stores information within the system 400).
As per claim 15, it has similar limitations as claim 1 and is therefore rejected using the same rationale. Mehta further teaches one or more computer-readable media storing program code executable by a computing system to cause the computing system to perform operations ([0075] the apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor ...; [0074] the memory 420 is a computer-readable medium).
Claim(s) 2-4, 6, 9-11, 13, 16-18, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Uluderya in view of Mehta in view of Shim et al. (US 2006/0069776 A1) (hereinafter Shim).
As per claim 2, Uluderya in view of Mehta disclose the claimed invention as detailed above for claim 1. Uluderya discloses associating the first request with the first execution environment by adjusting routing target weights using health information and client information and then selecting a single target at weighted-random ([0051] once the routing target weights are adjusted using the enabled routing weight schemes, they may be used to select a single target at weighted-random). Uluderya's selection operates on the adjusted weights directly. Uluderya does not describe constructing ranges of values from the QoS levels of the received requests or testing a drawn value against the bounds of any range. Selecting a target at weighted-random from adjusted weights is not calculating a first range of values based on the first QoS level and the second QoS level.
Uluderya in view of Mehta therefore do not explicitly teach:
calculating a first range of values based on the first QoS level and the second QoS level; and
associating the first execution environment with the first range based on the first performance score.
However, Shim teaches:
calculating a first range of values based on the first QoS level and the second QoS level ([0045] ΣSₖ is the sum of performance scores for all SIP servers; [0046] conditional step 608 tests whether (S₀+ . . . +Sⱼ₋₁)<X≦(S₀+ . . . Sⱼ); The examiner notes that each range is bounded by cumulative sums of per-entity values);
Shim cumulates the servers' performance scores, and in the combination the cumulated values are the QoS-based weights that Mehta associates with each tenant's requests
associating the first execution environment with the first range based on the first performance score ([0048] the integer axis 702 is divided into N partitions sequentially assigned to servers S0, S1, S2, S3, and S4. For each server, the size of the partition along integer axis 702 is proportional to the performance score).
Uluderya, Mehta, and Shim are all concerned with allocating shared server capacity among incoming service requests and are therefore combinable/modifiable.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Uluderya in view of Mehta in view of Shim by summing the tenants' QoS-based weights into cumulative ranges and sizing each execution environment's range by its performance score, then selecting the target of Uluderya's weighted-random routing with a random integer drawn across the ranges.
Motivation would improve the balance of the request load across the server pool because each server's partition is proportional to its performance score, and a larger partition makes the random integer more likely to land on that server as taught by Shim ([0048] and [0049]).
As per claim 3, Shim further teaches wherein calculating the first range comprises:
adding the first QoS level to the second QoS level to determine a first sum ([0045] ΣSₖ is the sum of performance scores for all SIP servers);
setting a lower bound of the first range as the second level of QoS ([0046] conditional step 608 tests whether (S₀+ . . . +Sⱼ₋₁)<X≦(S₀+ . . . Sⱼ); The examiner notes that the lower bound of each partition is the cumulative sum below it); and
setting an upper bound of the first range as the first sum ([0046] conditional step 608 tests whether (S₀+ . . . +Sⱼ₋₁)<X≦(S₀+ . . . Sⱼ); The examiner notes the upper bound is the cumulative sum including the entity).
As per claim 4, Shim further teaches wherein associating the first request with the first execution environment further comprises:
determining a lowest QoS level ([0046] S₀, Sⱼ₋₁, and Sⱼ are the performance scores for servers 0 (S0), j−1, and j, respectively; The examine notes that the first entity's value forms the lowest partition bound);
generating a random number between the lowest QoS level and the first sum ([0045] generate a random integer X, where 0<X≦ΣSₖ); and
determining the random number is within the first range ([0046] conditional step 608 tests whether (S0+ . . . +Sj−1)<X≦(S0+ . . . Sj); [0049] It would be determined in step 608 (with reference to integer axis 702) that (S0+S1)<X≦(S0+S1+S2). Thus, server S2 would be selected; The examiner notes that the conditional test compares the random integer against the two cumulative sums that forms the bounds of a server’s partition, and a positive result is the determination that the integer is within that partition).
As per claim 6, Uluderya in view of Mehta disclose the claimed invention as detailed above for claim 1 but do not explicitly teach:
wherein a probability that a request is distributed to an execution environment is directly related to a performance score of the execution environment.
However, Shim teaches:
a probability that a request is distributed to an execution environment is directly related to a performance score of the execution environment ([0049] the larger the performance score for a server, the larger the partition size, and the more likely that the random integer X will be associated with a server having a relatively larger performance score).
Uluderya, Mehta, and Shim are all concerned with allocating shared server capacity among incoming service requests and are therefore combinable/modifiable.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify Uluderya in view of Mehta in view of Shim by selecting the target of Uluderya's weighted-random routing with a probability that grows with the target's performance score.
Modification would improve use of the capacity available across the server pool because the random integer is more likely to be associated with a server having a relatively larger performance score as taught by Shim ([0049]).
As per claim 9, it has similar limitations as claim 2 and is therefore rejected using the same rationale.
As per claim 10, it has similar limitations as claim 3 and is therefore rejected using the same rationale.
As per claim 11, it has similar limitations as claim 4 and is therefore rejected using the same rationale.
As per claim 13, it has similar limitations as claim 6 and is therefore rejected using the same rationale.
As per claim 16, it has similar limitations as claim 2 and is therefore rejected using the same rationale.
As per claim 17, it has similar limitations as claim 3 and is therefore rejected using the same rationale.
As per claim 18, it has similar limitations as claim 4 and is therefore rejected using the same rationale.
As per claim 20, it has similar limitations as claim 6 and is therefore rejected using the same rationale.
Claim(s) 5, 12, and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Uluderya in view of Mehta in view of Chishti (US 2016/0080573 A1) (hereinafter Chishti).
As per claim 5, Uluderya in view of Mehta disclose the claimed invention as detailed above for claim 1 but do not explicitly teach:
sorting the first request and the second request into a first sorted list according to the first QoS level and the second QoS level;
sorting the first execution environment and the second execution environment into a second sorted list according to the first performance score and the second performance score; and
associating requests of the first sorted list to execution environments located at a corresponding list position of the second sorted list.
However, Chishti teaches:
sorting the first request and the second request into a first sorted list according to the first QoS level and the second QoS level ([0062] percentiles may be ordered according to a particular metric or combination of metrics to be optimized in the contact center, and a contact determined to have a relatively high percentile may be considered to be a "higher-value" contact for the contact center ...; The examiner notes that the incoming contacts are ordered by a per-contact value metric, and in the combination that metric is the tenant QoS level of each request);
sorting the first execution environment and the second execution environment into a second sorted list according to the first performance score and the second performance score ([0066] agent percentiles may be ordered according to a particular metric or combination of metrics to be optimized in the contact center, and an agent determined to have a relatively high percentile may be considered to be a higher-performing agent for the contact center);
associating requests of the first sorted list to execution environments located at a corresponding list position of the second sorted list ([0008] ordering one or more contacts, ordering one or more agents, comparing, by at least one processor, a first difference in ordering between a first contact and a first agent in a first pair with a second difference in ordering between a second contact and a second agent in a second pair, and selecting, by the at least one processor, the first pair or the second pair for connection based on the comparing; [0068] the pair may be determined according to a diagonal strategy, in which contacts and agents with more similar percentiles (or the most similar percentiles) may be selected for pairing ... a behavioral pairing module may select a contact-agent pairing with the smallest absolute difference between the contact's score and the agent's score; The examiner notes that pairing the most similar percentiles matches the highest ordered contact with the highest ordered agent and the next with the next, and each contact is thus associated with the agent at the corresponding list position of the second ordering).
Uluderya, Mehta, and Chishti are all concerned with assigning incoming requests to servicing resources in accordance with characteristics of the requests and of the resources and are therefore combinable/modifiable.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Uluderya in view of Mehta in view of Chishti by sorting Uluderya's pending requests by their tenants' QoS levels and the execution environments by their performance scores, then pairing each request with the environment at the corresponding position of the two orderings.
Modification would improve overall performance of the resource pool because pairing at similar percentiles outperforms both first-in-first-out and performance-based routing while still approximately balancing the utilization of the resources as taught by Chishti ([0039]).
As per claim 12, it has similar limitations as claim 5 and is therefore rejected using the same rationale.
As per claim 19, it has similar limitations as claim 5 and is therefore rejected using the same rationale.
Claim(s) 7 and 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Uluderya in view of Mehta in view of Qin et al. (US 2014/0056245 A1) (hereinafter Qin).
As per claim 7, Uluderya in view of Mehta disclose the claimed invention as detailed above for claim 1 but do not explicitly teach:
wherein the first request and the second request are distributed in descending order of QoS level.
However, Qin teaches:
the first request and the second request are distributed in descending order of QoS level ([0078] the AP performs the following steps for each QoS level in a descending order of QoS levels; [0079] the AP selects respective downlink service data packets at the current QoS level from its downlink buffer and determines respective UEs receiving the selected downlink service data packets; [0086] the AP will schedule resources preferentially for the UE 1 and then for a UE with the second largest number of downlink service data packets until resources are scheduled for all the UEs at this level, and then proceeds to scheduling at a next level; The examiner notes that the pending service data is scheduled level by level from the highest QoS level downward).
Uluderya, Mehta, and Qin are all concerned with scheduling shared servicing capacity among service data of differing service levels and are therefore combinable/modifiable.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Uluderya in view of Mehta in view of Qin by distributing Uluderya's pending requests level by level in a descending order of their tenants' QoS levels.
Modification would improve predictability and consistency of the request handling because a distribution order fixed by the requests' levels holds on every run and can be relied upon while the outcome of a random draw cannot.
As per claim 14, it has similar limitations as claim 7 and is therefore rejected using the same rationale.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Falcon et al. (US 2013/0218574) discloses that the interaction manager maintains a priority for each of the interactions, such as via an interaction list, where the priority of the interactions corresponds to an order in which the interactions are to be processed (abstract), which relates to the claimed distributing of the first request and the second request in descending order of QoS level.
Chua et al. (US 2005/0154625) discloses that during Job Prioritization ("JP"), jobs are prioritized based on a set of JP rules which are machine independent. During Machine Selection ("MS"), jobs are scheduled for execution at machines that are deemed to be best suited (abstract), which relates to the claimed associating of the first and second requests with the first and second execution environments.
Lyon et al. (US 2014/0280866) discloses receiving, by a load balancer, a plurality of metric values from a plurality of servers ... generating a first preference value for a first server of the plurality of servers (abstract), which relates to the claimed retrieving of a first performance score for a first execution environment.
Examiner has cited particular columns/paragraphs/sections and line numbers in the references applied and not relied upon to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to THANH NGO whose telephone number is (571)270-3019. The examiner can normally be reached M-F 9am to 6pm ET, first F of biweek off.
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, Pierre Vital can be reached at (571)272-4215. 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.
/T.N./ Examiner, Art Unit 2198
/PIERRE VITAL/ Supervisory Patent Examiner, Art Unit 2198