DETAILED ACTION
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 claims filed 03/03/2024.
Claims 1-18 are pending.
Claim Objections
Claims 3-5, 14, and 17 are being objected to because of the following informalities:
The use of “and/or” to include or exclude components, Examiner suggests amending “and/or” to “at least one of”. Appropriate correction is required.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
This application includes one or more claim limitations that do use the word “means,” and are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: “a storage means having one or more programs stored” in claim 15.
This application also includes one or more claim limitations that do not use the word “means,” but are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: “the resource scheduling module is [further] configured to” in Claims 9-14 and 18.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof. A review of the disclosure as originally filed, hereafter "disclosure", reveals that the corresponding structure of the “a storage”, is a non-transitory computer storage medium. As such no rejections will be made under 35 U.S.C. § 112(a) and (b) the 112(f) invocation in Claim 15. However, regarding Claims 9-14 and 18, review of the disclosure reveals that the corresponding structure of the “the resource scheduling module” is a general purpose computer, see at least instant specification ¶5, ¶61-¶63. In accordance with MPEP § 2181 (ll)(B), when the corresponding structure of computer implemented mean plus function limitations corresponds to a general purpose computer, an algorithm is required to transform the general purpose computer into a special purpose computer to be sufficient as corresponding structure. Upon further review of the disclosure, Applicant has failed to define the algorithm for each of the claimed functions and has instead only provided either verbatim support for the claimed function (which is insufficient as a steps of steps of a corresponding algorithm) or exemplary language that does not make clear the metes and bounds of the algorithm. As such, see rejections under 35 U.S.C. § 112(a) and (b) below.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 9-14 and 18 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention. Claims 9-14 and 18 recite “the resource scheduling module is [further] configured to” which invokes 35 U.S.C. § 112(f), see claim interpretation above. The disclosure does not recite sufficient corresponding structure (in this instance computer + algorithm), again see claim interpretation above. As such, and in accordance with MPEP § 2181 (ll)(B), last paragraph "When a claim containing a computer-implemented 35 U.S.C. 112(f) claim limitation is found to be indefinite under 35 U.S.C. 112(b) for failure to disclose sufficient corresponding structure (e.g., the computer and the algorithm) in the specification that performs the entire claimed function, it will also lack written description under 35 U.S.C. 112(a)."
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.
Claim 7, 9-14, and 17-18 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 limitation “the resource scheduling module” invokes 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. However, the written description fails to disclose the corresponding structure, material, or acts for performing the entire claimed function and to clearly link the structure, material, or acts to the function. The disclosure fails to disclose sufficient corresponding structure (in this instance computer+ algorithm), see claim interpretation above. As such, and in accordance with MPEP § 2181 (ll)(B) "For a computer-implemented 35 U.S.C. 112(f) claim limitation, the specification must disclose an algorithm for performing the claimed specific computer function, or else the claim is indefinite under 35 U.S.C. 112(b)." Therefore, the claim is indefinite and is rejected under 35 U.S.C. 112(b) or pre-AIA 35 U.S.C. 112, second paragraph.
Applicant may:
(a) Amend the claim so that the claim limitation will no longer be interpreted as a limitation under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph;
(b) Amend the written description of the specification such that it expressly recites what structure, material, or acts perform the entire claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(c) Amend the written description of the specification such that it clearly links the structure, material, or acts disclosed therein to the function recited in the claim, without introducing any new matter (35 U.S.C. 132(a)).
If applicant is of the opinion that the written description of the specification already implicitly or inherently discloses the corresponding structure, material, or acts and clearly links them to the function so that one of ordinary skill in the art would recognize what structure, material, or acts perform the claimed function, applicant should clarify the record by either:
(a) Amending the written description of the specification such that it expressly recites the corresponding structure, material, or acts for performing the claimed function and clearly links or associates the structure, material, or acts to the claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(b) Stating on the record what the corresponding structure, material, or acts, which are implicitly or inherently set forth in the written description of the specification, perform the claimed function. For more information, see 37 CFR 1.75(d) and MPEP §§ 608.01(o) and 2181.
Claim 7 recites “the same resource domain” and “the same type of resources”. There is insufficient antecedent basis for this limitation in the claim.
For the purposes of compact prosecution, Examiner will interpret “the same resource domain” to refer to “a same and single resource domain” established in Claim 6, and “the same type of resources” to refer to “types of resources” established earlier in Claim 7.
Claims 14 and 17 recite “a resource user initiates a resource addition request or a resource deletion request”. It is unclear if this is the same resource user established earlier in the Claims “a resource user executes on a resource scheduling apparatus”.
For the purposes of compact prosecution, Examiner will interpret “a resource user” to mean the same one established earlier in “a resource user executes on a resource scheduling apparatus” of the Claims 14 and 17.
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 1-18 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below.
Step 1:
Claim 1-8 and 17 are directed to methods and fall within the statutory category of processes; Claims 9-14, 15 and 18 are directed to an apparatus or device which falls within the statutory category of machine; Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
Claim 16 is directed to a transitory computer readable medium and does not fall under any statutory category for eligible subject matter, therefore it fails Step 1 and is rejected under 35 U.S.C. 101.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Step 2A Prong 1:
Claims 1 and 9: The limitations “calculating/calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes; calculating/calculate resource utilization rates of the respective nodes according to the first resource parameters of the respective nodes; calculating/calculate a distribution parameter of the respective resource users according to the first resource parameters of the respective nodes and the second resource parameters of the respective resource users;”, and “determining/determine a resource user to be migrated and a target node, and changing a node, to which the resource user to be migrated belongs, to the target node;” , as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally calculate the parameters, and utilization of resources, Furthermore, a person can mentally evaluate whether a resource needs to be moved to where it belongs.
Therefore, yes, Claims 1 and 9 recite Judicial exceptions.
The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.
Step 2A Prong 2:
Claims 1 and 9: The judicial exceptions are not integrated into practical applications. In particular, the claims recite the following additional elements – “wherein the resource user to be migrated is one or more of the respective resource users, and the target node is one or more of the respective nodes”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)).
Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the Claims 1 and 9 not only recite a judicial exception but that the claims are directed to a judicial exception as a judicial exception has not been integrated into a practical application.
Step 2B:
Claims 1 and 9: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components, field of use/technological environment, and insignificant extra-solution activity which do not amount to significantly more than the abstract idea.
Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, Claims 1 and 9 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Claims 2 and 10: “determining/determine the resource user to be migrated and the target node according to the resource utilization rates of the respective nodes, the distribution parameter of the respective resource users, a preset resource utilization rate threshold and a preset resource user distribution parameter threshold, the first resource parameters of the respective nodes, and the second resource parameters of the respective resource users” , as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about which users must be moved to certain resources based on certain resource parameters. With regard to integration into practical application and whether additional elements amount to significantly more, Claims 2 and 10 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 2 and 10 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Claims 3, 11, 12 and 18: “calculating/calculate the first resource parameters of the respective nodes according to the first resource parameters of each type and a corresponding first factor that represents an importance degree of each type of the first resource parameters; and/or the second resource parameters comprise least two types, and calculating/calculate the second resource parameters of the respective resource users at the respective nodes comprises: calculating/calculate the second resource parameters of the respective resource users at the respective nodes according to the second resource parameters of each type and a corresponding second factor that represents an importance degree of each type of the second resource parameters”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally calculate a parameter of a resource that also represent how important that resource is. With regard to integration into practical application and whether additional elements amount to significantly more, Claims 3, 11, 12 and 18 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 3, 11, 12 and 18 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 4: “a first weight or a first operational relationship; and/or the second factor comprises at least one of: a second weight or a second operational relationship” is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP §2106.05(f)). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 4 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 4 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 5: “the types of the first resource parameters comprise: load, resource bearing capacity, network bandwidth, and time delay; and/or the types of the second resource parameters of the respective resource users comprise: resource usage duration, resource usage frequency, bandwidth requirements of a data transmission network, resource requirement type, and resource utilization rate” is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP §2106.05(f)). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 4 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 4 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 6: “the respective nodes belong to a same and single resource domain” is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP §2106.05(f)). Further “calculating the first resource parameters of the respective nodes and the second resource parameters of the respective resource users at the respective nodes comprises: calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in the resource domain”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can calculate a parameter of a resource across various domains. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 6 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 6 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 7: “the respective nodes each belong to one or more of a plurality of resource domains divided according to types of resources, respective nodes in the same resource domain are deployed with the same type of resources” , is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP §2106.05(f)). “calculating the first resource parameters of the respective nodes and the second resource parameters of the respective resource users at the respective nodes comprises: calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in the same resource domain”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can calculate a parameter of a resource across various domains. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 7 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 7 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 8 and 13: “calculating/calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes according to a preset period”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can calculate a parameter of a resource over a set period of time. With regard to integration into practical application and whether additional elements amount to significantly more, Claims 8 and 13 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 8 and 13 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 14 and 17: “calculate/calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in a case where at least one of the following conditions is satisfied”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can calculate a parameter of a resource based on certain conditions. Further “a resource user executes on a resource scheduling apparatus at least one of: logging in, logging out, or closing a desktop; a resource user initiates a resource addition request or a resource deletion request; or at least one of the nodes fails and/or hardware of at least one of the nodes fails”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP §2106.05(f)). With regard to integration into practical application and whether additional elements amount to significantly more, Claims 14 and 17 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 14 and 17 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim 15: “A computer device, comprising: one or more processors; and a storage means having one or more programs stored thereon which, when executed by the one or more processors, cause the one or more processors to implement the resource scheduling method according to claim 1”, recites a field of use which generally links the use of a judicial exception to a particular technological environment (MPEP § 2106.05(h)). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 15 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 15 does not recite patent eligible subject matter under 35 U.S.C. § 101.
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-2, 6, 9-10, 15-16 are rejected under 35 U.S.C. 103(a) as being unpatentable over Smith et al. (US 20100027420 A1) (hereinafter Smith).
Regarding Claim 1, Smith teaches:
A resource scheduling method, comprising: calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes;
“At step 52, physical server availability is monitored and advertised” … “CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth. Server 28 has 23% free CPU, 2 GB free memory, and 85 Mb free bandwidth”, (Smith: ¶25, Fig 3), “server 26 includes virtual machine (VM) A and VM B, server 28 includes VM C and VM D, and server 30 includes VM E. As described below, each of the virtual machines may be moved from one server to another server”, (Smith: ¶20), “The edge access switch tracks all of the MAC address, VLAN pairs that each local virtual machine communicates and tracks overall bandwidth communicated, as well as any additional information necessary such as peak bandwidth bursts. This provides a traffic matrix that can be built using Netflow technology or general traffic inspection”, (Smith: ¶23), “a virtual machine that can run its own operating system and applications. Multiple virtual machines share hardware resources without interfering with each other so that several operating systems and applications can be run at the same time on a single computer”, (Smith: ¶15). Examiner notes: the VM a part of the plurality that may use other virtual resources is being considered the resource user.
calculating resource utilization rates of the respective nodes according to the first resource parameters of the respective nodes;
“The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “The traffic matrix of FIG. 4 shows bandwidth utilization between VM A and each of the other virtual machines (VM B, VM C, VM D, and VM E) in the first row. The second row of the traffic matrix shows bandwidth utilization between VM B and the other virtual machines”, (Smith: ¶24), “In one embodiment, a weight is applied to each path cost based on bandwidth utilization” … “path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32).
calculating a distribution parameter of the respective resource users according to the first resource parameters of the respective nodes and the second resource parameters of the respective resource users;
“utilize networking requirements of the virtual machines to dynamically distribute the virtual machines across the physical devices”, (Smith: ¶17), “a weight is applied to each path cost based on bandwidth utilization. FIG. 6 shows the table of FIG. 5 with weighted path cost based on bandwidth used between VM B and far-end communication partners (FIGS. 4 and 6). Each path cost is multiplied by the bandwidth recorded to that MAC address, VLAN pair (FIGS. 4 and 6). The weighted path costs are all added together to get a total cost for a particular physical server in the eligible server pool, with the bandwidth used between applications taken into account” … “path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32), “the best server at which to place the virtual machine is determined (step 58) (FIG. 3). The edge switch (or other device) examines the local copy of the PSIB to determine a subset (eligible server pool) of the PSIBs which can meet the requirements necessary to support the selected virtual machine” … “For each server in the eligible server pool, Dijkstra's algorithm can be used to calculate a path cost to each of the edge switches that the MAC, VLAN pairs are connected” … “The traffic information database may also be examined to determine which MAC address, VLAN pairs that the particular virtual machine communicates”, (Smith: ¶29).
While Smith does not explicitly teach a calculated distribution parameter, it does teach a calculated cost based on weights in “The weighted path costs are all added together to get a total cost for a particular physical server in the eligible server pool, with the bandwidth used between applications taken into account” … “path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32). A calculated cost is similar to calculated distribution parameter because the calculated cost can be used for the same purpose as a distribution parameter. It would have been obvious that a calculated cost encompasses a distribution parameter for assessing whether its resource efficient to distribute compute resources to certain destinations.
and in response to at least the resource utilization rates of the respective nodes or the distribution parameter of the respective resource users satisfying a resource aggregation condition, determining a resource user to be migrated and a target node, and changing a node, to which the resource user to be migrated belongs, to the target node;
“If the parameter exceeds the predefined threshold, one of the virtual machines is selected to move to a second network device, the second network device selected based on network information, and the virtual machine is move”, (Smith: Abstract), “a determination is made as to whether a virtual machine should be moved” … “PU, memory, bandwidth, or other parameter, or combination of parameters at the physical server. For example, if the network bandwidth for a particular server is exceeding a predefined threshold for a period of time, the edge switch can attempt to move a virtual machine to a server that has more network bandwidth available”, (Smith: ¶27), “a virtual machine is selected for movement to another server (FIG. 3). The local edge switch, management station, or server may select a virtual machine to move based on networking parameter inputs. This decision is influenced by the threshold which is exceeded so that the server threshold levels are predicated to be met by moving the particular virtual machine”, (Smith: ¶28).
wherein the resource user to be migrated is one or more of the respective resource users, and the target node is one or more of the respective nodes.
“In the example shown in FIG. 1, server 26 includes virtual machine (VM) A and VM B, server 28 includes VM C and VM D, and server 30 includes VM E. As described below, each of the virtual machines may be moved from one server to another server”, (Smith: ¶20, Fig 1), “a virtual machine is selected for movement to another server (FIG. 3)” … “VM B is selected to be moved from server 26 (first network device) to one of the other servers (second network device)”, (Smith: ¶28, Fig 3), “As shown in FIG. 6, the lowest weighted path cost is at server 30. Thus, path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32, Fig 6).
Regarding Claim 2, Smith teaches
determining the resource user to be migrated and the target node according to the resource utilization rates of the respective nodes, the distribution parameter of the respective resource users, a preset resource utilization rate threshold and a preset resource user distribution parameter threshold, the first resource parameters of the respective nodes, and the second resource parameters of the respective resource users.
“determining if one or more parameters exceed a predefined threshold at said first network device; and if said one or more parameters exceed said predefined threshold: selecting one of said virtual machines to move to a second network device, said second network device selected based on network information; and moving said selected virtual machine to the second network device”, (Smith: Claim 1), “edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server. For example, if the network bandwidth for a particular server is exceeding a predefined threshold for a period of time, the edge switch can attempt to move a virtual machine to a server that has more network bandwidth available”, (Smith: ¶027), “This decision is influenced by the threshold which is exceeded so that the server threshold levels are predicated to be met by moving the particular virtual machine. In the present example, VM B is selected to be moved from server 26 (first network device) to one of the other servers (second network device) (FIG. 1)”, (Smith: ¶28), “if one or more network parameters exceed a predefined threshold and if the network parameters exceed the predefined threshold, select one of the virtual machines to move to a network device, the network device selected based on network information, and move the selected virtual machine to the network device”, (Smith: ¶13), “dynamically distribute the virtual machines across the physical devices. The placement of a virtual machine in the network can be optimized by considering application traffic patterns, network topology, latency, bandwidth requirements” … “distributed or centralized resource scheduling may be used to automate initial virtual machine placement and continuously optimize placement of the virtual machines based on current workload”, (Smith: ¶17). Examiner notes: based on various thresholds such as network and resource usage, virtual machines are distributed to physical devices.
Regarding Claim 6, Smith teaches
the respective nodes belong to a same and single resource domain, and calculating the first resource parameters of the respective nodes and the second resource parameters of the respective resource users at the respective nodes comprises: calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in the resource domain.
“FIG. 1 illustrates an example of a network in which embodiments described herein may be implemented”, (Smith: ¶4, Fig 1), “The system operates in the context of a data communication network including multiple network elements. Some of the elements in a network that employs the system may be network devices such as servers, switches, or routers”, (Smith: ¶18), “The network 10 shown in FIG. 1 includes a number of switches 12, 14, 16, 18, 20, 22 interconnected by links 24. Switches (e.g., edge access switches) 16, 18, 20, 22 are each connected to one or more servers 26, 28, 30”, (Smith: ¶19), “Each server 26, 28, 30 includes a virtual switch 34 and one or more virtual machines 36”, (Smith: ¶20), “This information is then propagated to all switches within the L2 domain through a Physical Server Advertisement Protocol (PSAP)”, (Smith: ¶26), “This determination may be performed by the server 26, 28, 30, local edge switch 16, 18, 20, 22, management station 32, or another device. The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “the calculations and decisions may be made at a single network device or may be performed over multiple network devices …”, (Smith: ¶22).
Regarding Claim 9, Smith teaches:
A resource scheduling apparatus, comprising: a calculation module and a resource scheduling module, wherein the calculation module is configured to calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes;
“At step 52, physical server availability is monitored and advertised” … “CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth. Server 28 has 23% free CPU, 2 GB free memory, and 85 Mb free bandwidth”, (Smith: ¶25, Fig 3), “server 26 includes virtual machine (VM) A and VM B, server 28 includes VM C and VM D, and server 30 includes VM E. As described below, each of the virtual machines may be moved from one server to another server”, (Smith: ¶20), “The edge access switch tracks all of the MAC address, VLAN pairs that each local virtual machine communicates and tracks overall bandwidth communicated, as well as any additional information necessary such as peak bandwidth bursts. This provides a traffic matrix that can be built using Netflow technology or general traffic inspection”, (Smith: ¶23), “a virtual machine that can run its own operating system and applications. Multiple virtual machines share hardware resources without interfering with each other so that several operating systems and applications can be run at the same time on a single computer”, (Smith: ¶15). Examiner notes: the VM a part of the plurality that may use other virtual resources is being considered the resource user.
calculate resource utilization rates of the respective nodes according to the first resource parameters of the respective nodes;
“The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “The traffic matrix of FIG. 4 shows bandwidth utilization between VM A and each of the other virtual machines (VM B, VM C, VM D, and VM E) in the first row. The second row of the traffic matrix shows bandwidth utilization between VM B and the other virtual machines”, (Smith: ¶24), “In one embodiment, a weight is applied to each path cost based on bandwidth utilization” … “path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32).
and calculate a distribution parameter of the respective resource users according to the first resource parameters of the respective nodes and the second resource parameters of the respective resource users;
“utilize networking requirements of the virtual machines to dynamically distribute the virtual machines across the physical devices”, (Smith: ¶17), “a weight is applied to each path cost based on bandwidth utilization. FIG. 6 shows the table of FIG. 5 with weighted path cost based on bandwidth used between VM B and far-end communication partners (FIGS. 4 and 6). Each path cost is multiplied by the bandwidth recorded to that MAC address, VLAN pair (FIGS. 4 and 6). The weighted path costs are all added together to get a total cost for a particular physical server in the eligible server pool, with the bandwidth used between applications taken into account” … “path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32), “the best server at which to place the virtual machine is determined (step 58) (FIG. 3). The edge switch (or other device) examines the local copy of the PSIB to determine a subset (eligible server pool) of the PSIBs which can meet the requirements necessary to support the selected virtual machine” … “For each server in the eligible server pool, Dijkstra's algorithm can be used to calculate a path cost to each of the edge switches that the MAC, VLAN pairs are connected” … “The traffic information database may also be examined to determine which MAC address, VLAN pairs that the particular virtual machine communicates”, (Smith: ¶29).
While Smith does not explicitly teach a calculated distribution parameter, it does teach a calculated cost based on weights in “The weighted path costs are all added together to get a total cost for a particular physical server in the eligible server pool, with the bandwidth used between applications taken into account” … “path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32). A calculated cost is similar to calculated distribution parameter because the calculated cost can be used for the same purpose as a distribution parameter. It would have been obvious that a calculated cost encompasses a distribution parameter for assessing whether its resource efficient to distribute compute resources to certain destinations.
and the resource scheduling module is configured to, in response to at least the resource utilization rates of the respective nodes or the distribution parameter of the respective resource users satisfying a resource aggregation condition, determine a resource user to be migrated and a target node, and change a node, to which the resource user to be migrated belongs, to the target node;
“If the parameter exceeds the predefined threshold, one of the virtual machines is selected to move to a second network device, the second network device selected based on network information, and the virtual machine is move”, (Smith: Abstract), “a determination is made as to whether a virtual machine should be moved” … “PU, memory, bandwidth, or other parameter, or combination of parameters at the physical server. For example, if the network bandwidth for a particular server is exceeding a predefined threshold for a period of time, the edge switch can attempt to move a virtual machine to a server that has more network bandwidth available”, (Smith: ¶27), “a virtual machine is selected for movement to another server (FIG. 3). The local edge switch, management station, or server may select a virtual machine to move based on networking parameter inputs. This decision is influenced by the threshold which is exceeded so that the server threshold levels are predicated to be met by moving the particular virtual machine”, (Smith: ¶28).
wherein the resource user to be migrated is one or more of the respective resource users, and the target node is one or more of the respective nodes.
“In the example shown in FIG. 1, server 26 includes virtual machine (VM) A and VM B, server 28 includes VM C and VM D, and server 30 includes VM E. As described below, each of the virtual machines may be moved from one server to another server”, (Smith: ¶20, Fig 1), “a virtual machine is selected for movement to another server (FIG. 3)” … “VM B is selected to be moved from server 26 (first network device) to one of the other servers (second network device)”, (Smith: ¶28, Fig 3), “As shown in FIG. 6, the lowest weighted path cost is at server 30. Thus, path cost calculations determine that VM B should migrate to server 30 based on network information”, (Smith: ¶32, Fig 6).
Regarding Claim 10, Smith teaches:
determine the resource user to be migrated and the target node according to the resource utilization rates of the respective nodes, the distribution parameter of the respective resource users, a preset resource utilization rate threshold and a preset resource user distribution parameter threshold, the first resource parameters of the respective nodes, and the second resource parameters of the respective resource users.
“determining if one or more parameters exceed a predefined threshold at said first network device; and if said one or more parameters exceed said predefined threshold: selecting one of said virtual machines to move to a second network device, said second network device selected based on network information; and moving said selected virtual machine to the second network device”, (Smith: Claim 1), “edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server. For example, if the network bandwidth for a particular server is exceeding a predefined threshold for a period of time, the edge switch can attempt to move a virtual machine to a server that has more network bandwidth available”, (Smith: ¶027), “This decision is influenced by the threshold which is exceeded so that the server threshold levels are predicated to be met by moving the particular virtual machine. In the present example, VM B is selected to be moved from server 26 (first network device) to one of the other servers (second network device) (FIG. 1)”, (Smith: ¶28), “if one or more network parameters exceed a predefined threshold and if the network parameters exceed the predefined threshold, select one of the virtual machines to move to a network device, the network device selected based on network information, and move the selected virtual machine to the network device”, (Smith: ¶13), “dynamically distribute the virtual machines across the physical devices. The placement of a virtual machine in the network can be optimized by considering application traffic patterns, network topology, latency, bandwidth requirements” … “distributed or centralized resource scheduling may be used to automate initial virtual machine placement and continuously optimize placement of the virtual machines based on current workload”, (Smith: ¶17). Examiner notes: based on various thresholds such as network and resource usage, virtual machines are distributed to physical devices.
Regarding Claim 15, Smith teaches
A computer device, comprising: one or more processors; and a storage means having one or more programs stored thereon which, when executed by the one or more processors, cause the one or more processors to implement the resource scheduling method according to claim 1.
“The CPU preferably includes memory and a processor”, (Smith: ¶18), “FIG. 2 includes a processor 40 and memory 42”, (Smith: ¶22), “processor 72 may execute codes stored in a program memory 74. Program memory 74 is one example of a computer-readable medium. Program memory 74 can be a volatile memory”, (Smith: ¶34), “CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth”, (Smith: ¶25).
Smith teaches the method according to Claim 1 (see detailed mapping above for Claim 1) along with the computer device of Claim 15.
Regarding Claim 16, Smith teaches
A computer-readable medium storing a computer program thereon which, when executed, causes the resource scheduling method according to claim 1 to be implemented.
“The CPU preferably includes memory and a processor”, (Smith: ¶18), “FIG. 2 includes a processor 40 and memory 42”, (Smith: ¶22), “processor 72 may execute codes stored in a program memory 74. Program memory 74 is one example of a computer-readable medium. Program memory 74 can be a volatile memory”, (Smith: ¶34), “CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth”, (Smith: ¶25).
Smith teaches the method according to Claim 1 (see detailed mapping above for Claim 1) along with the computer readable medium of Claim 16.
Claims 3-5, 7-8, 11-13 and 18 are rejected under 35 U.S.C. 103(a) as being unpatentable over Smith in view of Chaudhary et al. (US 20140304352 A1) (hereinafter Chaudhary).
Regarding Claim 3, Smith teaches
calculating the first resource parameters of the respective nodes according to the first resource parameters of each type and a corresponding first factor that represents an importance degree of each type of the first resource parameters;
“Application performance in virtualization systems is dependent on a number of factors that include CPU availability, memory availability, network bandwidth availability, and network latency”, (Smith: ¶16), “The placement of a virtual machine in the network can be optimized by considering application traffic patterns, network topology, latency, bandwidth requirements, or any combination thereof”, (Smith: ¶17), “may also monitor one or more of the following: CPU usage…” … “server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth. Server 28 has 23% free CPU, 2 GB free memory, and 85 Mb free bandwidth…”, (Smith: ¶25), “The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “Dijkstra's algorithm can be used to calculate a path cost to each of the edge switches that the MAC, VLAN pairs are connected”, (Smith: ¶29), “a weight is applied to each path cost based on bandwidth utilization” … “Each path cost is multiplied by the bandwidth recorded to that MAC address, VLAN pair” … “the server with the lowest total cost is the best server to place the virtual machine from a network perspective”, (Smith: ¶32, Figs 4 & 6).
and/or the second resource parameters comprise least two types, and calculating the second resource parameters of the respective resource users at the respective nodes comprises: calculating the second resource parameters of the respective resource users at the respective nodes according to the second resource parameters of each type and a corresponding second factor that represents an importance degree of each type of the second resource parameters.
“Multiple virtual machines share hardware resources without interfering with each other so that several operating systems and applications can be run at the same time on a single computer”, (Smith: ¶15), “The embodiments described herein utilize networking requirements of the virtual machines to dynamically distribute the virtual machines across the physical devices”, (Smith: ¶17), “traffic interactions are monitored. The network traffic associated with a first network device containing one or more of the virtual machines may be monitored at the virtual switch 34 located at the network device (server) 26, 28, 30, one of the switches 16, 18, 20, 22 in communication with the server, or another network device”, (Smith: ¶23), “The traffic matrix of FIG. 4 shows bandwidth utilization between VM A and each of the other virtual machines (VM B, VM C, VM D, and VM E) in the first row. The second row of the traffic matrix shows bandwidth utilization between VM B and the other virtual machines”, (Smith: ¶24, Fig 4), “applying a weight to each of said path costs, each of said weights based on network traffic between said selected virtual machine and another of said plurality of virtual machines”, (Smith: Claim 7).
Further regarding Claim 3, Smith fails to teach:
an importance degree
However, Chaudhury teaches: “The weight may be any type and form of numerical factor identifying a relative degree of importance, influence, consideration or value”, (Chaudhury: ¶344), “The arbiter can distribute load to each packet engine 505 based in part on the age of the engine's vote and in some cases a priority value associated with the current amount of load on an engine's associated core 505”, (Chaudhury: ¶222), “an appliance may assign a priority to providing connection requests from a client to virtual servers that have previously serviced or are currently servicing connections from the client”, (Chaudhury: ¶282).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine an importance degree of Chaudhury with the methods and systems of Smith resulting in a system that can prioritize sending compute tasks to the most available compute resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 4, Smith teaches:
a first weight or a first operational relationship; and/or the second factor comprises at least one of: a second weight or a second operational relationship.
“perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “Dijkstra's algorithm can be used to calculate a path cost to each of the edge switches that the MAC, VLAN pairs are connected”, (Smith: ¶29), “a weight is applied to each path cost based on bandwidth utilization” … “The weighted path costs are all added together to get a total cost for a particular physical server in the eligible server pool, with the bandwidth used between applications taken into account”, (Smith: ¶032), “applying a weight to each of said path costs, each of said weights based on network traffic between said selected virtual machine and another of said plurality of virtual machines”, (Smith: Claim 7).
Regarding Claim 5, Smith teaches
load, resource bearing capacity, network bandwidth, and time delay; and/or the types of the second resource parameters of the respective resource users comprise: resource usage duration, resource usage frequency, bandwidth requirements of a data transmission network, resource requirement type, and resource utilization rate.
“Application performance in virtualization systems is dependent on a number of factors that include CPU availability, memory availability, network bandwidth availability, and network latency”, (Smith: ¶16), “The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth. Server 28 has 23% free CPU, 2 GB free memory, and 85 Mb free bandwidth”, (Smith: ¶25), “The selection of the server to which to move the virtual machine is based on network information (e.g., application traffic patterns, bandwidth requirements, network topology)” … “The path cost used in DCE forwarding is typically reflective of the latency of the path. Algorithms, however, may also take latency measurements into account”, (Smith: ¶029), “The placement of a virtual machine in the network can be optimized by considering application traffic patterns, network topology, latency, bandwidth requirements, or any combination thereof”, (Smith: ¶17), “parameters comprise network parameters and processing and memory requirements at the first network device”, (Smith: Claim 5), “FIG. 4 is an example of a traffic matrix showing bandwidth utilization between virtual machines”, (Smith: ¶7, Fig 4), “monitoring network traffic associated with said first network device comprises generating a traffic matrix comprising bandwidth utilization between said virtual machines”, (Smith: Claim 8).
Further regarding Claim 5, Smith fails to teach:
resource usage duration, resource usage frequency
However, Chaudhury teaches: “monitoring agent 197 may measure the total and per session system resource usage, as well as application and networking performance”, (Chaudhury: ¶102), “monitoring agent 197 measures and monitors the duration a user is logged into an application, a server, or the application delivery system 190” … “monitoring agent 197 measures and monitors active and inactive session counts for an application, server or application delivery system session”, (Chaudhury: ¶103), “The bandwidth detector 802 may at predetermined frequencies or time frames determine a measured bandwidth 825A for a first vServer 275A”, (Chaudhury: ¶285), “the bandwidth detector 802 determines an average number of bytes transferred per the time period, such as per second”, (Chaudhury: ¶288), “he pool manager 1165 may manage the number of bytes per second being processed by the cores 505. In various embodiments, the pool manager 1165 may manage the number of packets per second being processed by the cores 505”, (Chaudhury: ¶392). Examiner notes :resource usage rate over time is being interpreted as resource usage frequency.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine resource usage duration, resource usage frequency of Chaudhury with the methods and systems of Smith resulting in a system that monitor usage periods and frequency. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “re-allocate the portion of the spillover limit for each of the nodes”, (Chaudhury: ¶22), “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 7, Smith teaches:
the respective nodes each belong to one or more of a plurality of resource domains divided according to types of resources, respective nodes in the same resource domain are deployed with the same type of resources, and calculating the first resource parameters of the respective nodes and the second resource parameters of the respective resource users at the respective nodes comprises: calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in the same resource domain.
“FIG. 1 illustrates an example of a network in which embodiments described herein may be implemented”, (Smith: ¶4, Fig 1), “The system operates in the context of a data communication network including multiple network elements. Some of the elements in a network that employs the system may be network devices such as servers, switches, or routers”, (Smith: ¶18), “The network 10 shown in FIG. 1 includes a number of switches 12, 14, 16, 18, 20, 22 interconnected by links 24. Switches (e.g., edge access switches) 16, 18, 20, 22 are each connected to one or more servers 26, 28, 30”, (Smith: ¶19), “Each server 26, 28, 30 includes a virtual switch 34 and one or more virtual machines 36”, (Smith: ¶20), “This information is then propagated to all switches within the L2 domain through a Physical Server Advertisement Protocol (PSAP)”, (Smith: ¶26), “This determination may be performed by the server 26, 28, 30, local edge switch 16, 18, 20, 22, management station 32, or another device. The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “the calculations and decisions may be made at a single network device or may be performed over multiple network devices …”, (Smith: ¶22).
Further regarding Claim 7, Smith fails to teach:
the respective nodes each belong to one or more of a plurality of resource domains divided according to types of resources, respective nodes in the same resource domain are deployed with the same type of resources,
However, Chaudhury teaches: “handling limit parameters for spillover conditions of virtual servers across multiple nodes in a cluster system…”, (Chaudhury: Abstract), “In a cluster system, requests to use the resource may be handled by different nodes at different times. Each of the nodes may be running at different capacity. It is challenging to manage the use of the resource across the different nodes”, (Chaudhury: ¶3), “the multi-core device may be configured for any type of spillover limit, including but not limited to connection based spillover, dynamic connection based spillover, health based spillover and bandwidth bases spillover”, (Chaudhury: ¶416), “The spillover limit may identify or specify the type of resource--connection, health, bandwidth, etc. Using the pool management techniques herein, the multi-core device may allocate and manage the number of resource uses across the cores, packet engines and/or virtual servers”, (Chaudhury: ¶417), “…The first quota threshold may include an allocation of a portion of the spillover limit for use of the resource”, (Chaudhury: ¶22), “a plurality of computing devices 100, a plurality of virtual machines 406, a plurality of hypervisors 401, a plurality of management components referred to as tools stacks 404, and a physical resource 421, 428”, (Chaudhury: ¶189), “such a machine may be referred to as a "Domain U HVM (Hardware Virtual Machine) virtual machine"” … “such a machine may be referred to as a "Domain U PV virtual machine"”, (Chaudhury: ¶188). Examiner notes: the various embodiments of what is being considered a resource is being interpreted as a plurality of domains.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the respective nodes each belong to one or more of a plurality of resource domains divided according to types of resources, respective nodes in the same resource domain are deployed with the same type of resources of Chaudhury with the methods and systems of Smith resulting in a system that can determine appropriate domains for moving compute resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “re-allocate the portion of the spillover limit for each of the nodes”, (Chaudhury: ¶22), “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 8, Smith teaches
calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes according to a preset period.
“CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth”, (Smith: ¶25), “utilizing the edge access switch to monitor traffic from the local edge switch's virtual machines. The edge access switch tracks all of the MAC address, VLAN pairs that each local virtual machine communicates and tracks overall bandwidth communicated, as well as any additional information necessary such as peak bandwidth bursts…”, (Smith: ¶23), “FIG. 4 is an example of a traffic matrix generated from monitoring traffic interactions at server 26…”, (Smith: ¶24), “the advertisement may be infrequent (e.g., five minute intervals). The broadcast interval may be configured by the user”, (Smith: ¶26).
Further regarding Claim 8, Smith fails to teach:
according to a preset period.
However, Chaudhury teaches: “may monitor the status for each of the services at predetermined time intervals, for example once every 0.01, 0.1, 0.2, 0.5, or 1 seconds”, (Chaudhury: 275), “In these embodiments, packets can be distributed to a particular core 505 for five milliseconds or for any period of time determined by a user, program, system, administrator or otherwise. After the predetermined time period elapses, data packets are transmitted to a different core 505 for the predetermined period of time”, (Chaudhury: ¶216), “the appliance determines the measured bandwidth 825 of a vServer 275 on a predetermined frequency…”, (Chaudhury: ¶306).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine according to a preset period of Chaudhury with the methods and systems of Smith resulting in a system with a predetermined monitoring interval to perform calculations. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “re-allocate the portion of the spillover limit for each of the nodes”, (Chaudhury: ¶22), “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 11, Smith teaches:
calculate the first resource parameters of the respective nodes according to the first resource parameters of each type and a corresponding first factor that represents an importance degree of each type of the first resource parameters.
“Application performance in virtualization systems is dependent on a number of factors that include CPU availability, memory availability, network bandwidth availability, and network latency”, (Smith: ¶16), “The placement of a virtual machine in the network can be optimized by considering application traffic patterns, network topology, latency, bandwidth requirements, or any combination thereof”, (Smith: ¶17), “may also monitor one or more of the following: CPU usage…” … “server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth. Server 28 has 23% free CPU, 2 GB free memory, and 85 Mb free bandwidth…”, (Smith: ¶25), “The edge switch can perform the calculation based on user influenced thresholds for CPU, memory, bandwidth, or other parameter, or combination of parameters at the physical server”, (Smith: ¶27), “Dijkstra's algorithm can be used to calculate a path cost to each of the edge switches that the MAC, VLAN pairs are connected”, (Smith: ¶29), “a weight is applied to each path cost based on bandwidth utilization” … “Each path cost is multiplied by the bandwidth recorded to that MAC address, VLAN pair” … “the server with the lowest total cost is the best server to place the virtual machine from a network perspective”, (Smith: ¶32, Figs 4 & 6).
Further Regarding Claim 11, Smith fails to teach:
an importance degree
However, Chaudhury teaches: “The weight may be any type and form of numerical factor identifying a relative degree of importance, influence, consideration or value”, (Chaudhury: ¶344), “The arbiter can distribute load to each packet engine 505 based in part on the age of the engine's vote and in some cases a priority value associated with the current amount of load on an engine's associated core 505”, (Chaudhury: ¶222), “an appliance may assign a priority to providing connection requests from a client to virtual servers that have previously serviced or are currently servicing connections from the client”, (Chaudhury: ¶282).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine an importance degree of Chaudhury with the methods and systems of Smith resulting in a system that can prioritize sending compute tasks to the most available compute resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 12, Smith teaches:
the second resource parameters comprise least two types, and the calculation module is further configured to calculate the second resource parameters of the respective resource users at the respective nodes according to the second resource parameters of each type and a corresponding second factor that represents an importance degree of each type of the second resource parameter.
“Multiple virtual machines share hardware resources without interfering with each other so that several operating systems and applications can be run at the same time on a single computer”, (Smith: ¶15), “The embodiments described herein utilize networking requirements of the virtual machines to dynamically distribute the virtual machines across the physical devices”, (Smith: ¶17), “traffic interactions are monitored. The network traffic associated with a first network device containing one or more of the virtual machines may be monitored at the virtual switch 34 located at the network device (server) 26, 28, 30, one of the switches 16, 18, 20, 22 in communication with the server, or another network device”, (Smith: ¶23), “The traffic matrix of FIG. 4 shows bandwidth utilization between VM A and each of the other virtual machines (VM B, VM C, VM D, and VM E) in the first row. The second row of the traffic matrix shows bandwidth utilization between VM B and the other virtual machines”, (Smith: ¶24, Fig 4), “applying a weight to each of said path costs, each of said weights based on network traffic between said selected virtual machine and another of said plurality of virtual machines”, (Smith: Claim 7).
Further regarding Claim 12, Smith fails to teach:
an importance degree
However, Chaudhury teaches: “The weight may be any type and form of numerical factor identifying a relative degree of importance, influence, consideration or value”, (Chaudhury: ¶344), “The arbiter can distribute load to each packet engine 505 based in part on the age of the engine's vote and in some cases a priority value associated with the current amount of load on an engine's associated core 505”, (Chaudhury: ¶222), “an appliance may assign a priority to providing connection requests from a client to virtual servers that have previously serviced or are currently servicing connections from the client”, (Chaudhury: ¶282).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine an importance degree of Chaudhury with the methods and systems of Smith resulting in a system that can prioritize sending compute tasks to the most available compute resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 13, Smith teaches:
the calculation module is configured to calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes according to a preset period.
“CPU usage; CPU traits (CPU type, vendor and the like); memory; and power requirements of the physical servers to which it is connected. In one example, server 26 has 90% free CPU, 1 GB free memory, and 5 Mb free bandwidth”, (Smith: ¶25), “utilizing the edge access switch to monitor traffic from the local edge switch's virtual machines. The edge access switch tracks all of the MAC address, VLAN pairs that each local virtual machine communicates and tracks overall bandwidth communicated, as well as any additional information necessary such as peak bandwidth bursts…”, (Smith: ¶23), “FIG. 4 is an example of a traffic matrix generated from monitoring traffic interactions at server 26…”, (Smith: ¶24), “the advertisement may be infrequent (e.g., five minute intervals). The broadcast interval may be configured by the user”, (Smith: ¶26).
Further regarding Claim 13, Smith fails to teach:
according to a preset period.
However, Chaudhury teaches: “may monitor the status for each of the services at predetermined time intervals, for example once every 0.01, 0.1, 0.2, 0.5, or 1 seconds”, (Chaudhury: 275), “In these embodiments, packets can be distributed to a particular core 505 for five milliseconds or for any period of time determined by a user, program, system, administrator or otherwise. After the predetermined time period elapses, data packets are transmitted to a different core 505 for the predetermined period of time”, (Chaudhury: ¶216), “the appliance determines the measured bandwidth 825 of a vServer 275 on a predetermined frequency…”, (Chaudhury: ¶306).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine according to a preset period of Chaudhury with the methods and systems of Smith resulting in a system with a predetermined monitoring interval to perform calculations. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “re-allocate the portion of the spillover limit for each of the nodes”, (Chaudhury: ¶22), “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Regarding Claim 18, Smith teaches:
the second resource parameters comprise least two types, and the calculation module is further configured to calculate the second resource parameters of the respective resource users at the respective nodes according to the second resource parameters of each type and a corresponding second factor that represents an importance degree of each type of the second resource parameter.
“Multiple virtual machines share hardware resources without interfering with each other so that several operating systems and applications can be run at the same time on a single computer”, (Smith: ¶15), “The embodiments described herein utilize networking requirements of the virtual machines to dynamically distribute the virtual machines across the physical devices”, (Smith: ¶17), “traffic interactions are monitored. The network traffic associated with a first network device containing one or more of the virtual machines may be monitored at the virtual switch 34 located at the network device (server) 26, 28, 30, one of the switches 16, 18, 20, 22 in communication with the server, or another network device”, (Smith: ¶23), “The traffic matrix of FIG. 4 shows bandwidth utilization between VM A and each of the other virtual machines (VM B, VM C, VM D, and VM E) in the first row. The second row of the traffic matrix shows bandwidth utilization between VM B and the other virtual machines”, (Smith: ¶24, Fig 4), “applying a weight to each of said path costs, each of said weights based on network traffic between said selected virtual machine and another of said plurality of virtual machines”, (Smith: Claim 7).
Further regarding Claim 18, Smith fails to teach:
an importance degree
However, Chaudhury teaches: “The weight may be any type and form of numerical factor identifying a relative degree of importance, influence, consideration or value”, (Chaudhury: ¶344), “The arbiter can distribute load to each packet engine 505 based in part on the age of the engine's vote and in some cases a priority value associated with the current amount of load on an engine's associated core 505”, (Chaudhury: ¶222), “an appliance may assign a priority to providing connection requests from a client to virtual servers that have previously serviced or are currently servicing connections from the client”, (Chaudhury: ¶282).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine an importance degree of Chaudhury with the methods and systems of Smith resulting in a system that can prioritize sending compute tasks to the most available compute resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “improved management functionality to an administrator of a virtual machine farm”, (Chaudhury: ¶186), “performance increases via network traffic acceleration, the virtual appliance may perform caching and compression. To offload processing of any servers, the virtual appliance may perform connection multiplexing and pooling and/or SSL processing”, (Chaudhury: ¶194).
Claims 14 and 17 are rejected under 35 U.S.C. 103(a) as being unpatentable over Smith in view of Thomas et al. (US 20170185437 A1) (hereinafter Thomas).
Regarding Claim 14, Smith fails to teaches:
the calculation module is configured to calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in a case where at least one of the following conditions is satisfied: a resource user executes on a resource scheduling apparatus at least one of: logging in, logging out, or closing a desktop; a resource user initiates a resource addition request or a resource deletion request; or at least one of the nodes fails and/or hardware of at least one of the nodes fails.
However, Thomas teaches: “monitoring and tracking connections to, disconnections from, and reconnections to various virtual desktop instances, and determining whether and/or when to shut down the underlying virtualized computing resources may be performed by the instance managers 322”, (Thomas: ¶45), “the communication may also include information identifying resource usage information, processing requirements, or rules regarding the duration or conditions of the remote computing session for the user of the client computing device”, (Thomas: ¶39), “ “a resource management policy or shutdown policy may explicitly define a schedule for shutting down computing resource instances for virtual desktop instances. For example, an end user may define a schedule for shutting down and/or restarting a computing resource instances for a virtual desktop instance if the end user knows in advance when they will be connecting to and/or disconnecting from the virtual desktop instance”, (Thomas: ¶88), “Service providers that implement virtual desktop instances for the benefit of customers often shut down the underlying service provider resources each time the customer disconnects from their virtual desktop instance (e.g., by logging out)”, (Thomas: ¶3), “the service provider (or computing resource instance manager) may track when each virtual desktop instance is “in use”, meaning that a customer (e.g., an end user in a service provider customer organization) is logged in/connected (e.g., through a client) to the virtual desktop instance.”, (Thomas: ¶76), “With virtualization, the single physical computing device can create, maintain or delete virtual machines in a dynamic manner”, (Thomas: ¶2), “receiving (e.g., by a service provider) from a user (e.g., through a client), a request specifying a computing resource instance type, a storage volume capacity, and a shutdown policy for a virtual desktop instance…”, (Thomas: ¶107), “restarting or booting up a computing resource instance of the specified type (as in 1070) and reattaching and remounting the storage volumes, while adding or removing capacity, if applicable (as in 1075)”, (Thomas: ¶108), “the service provider computer network 305 may be able to mitigate the effect of failures of the data center computer(s) 310 running the virtual desktop instances 314 or errors associated with the execution”, (Thomas: ¶47), “multiple servers with independent failure profiles for backup or fault performance purposes. For example, the servers may be attached to different power sources or cooling systems…”, (Thomas: ¶48), “the PES 302 may switch the connection of the virtual desktop instance 314 from the desktop store to the back-up desktop store”, (Thomas: ¶48).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the calculation module is configured to calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in a case where at least one of the following conditions is satisfied: a resource user executes on a resource scheduling apparatus at least one of: logging in, logging out, or closing a desktop; a resource user initiates a resource addition request or a resource deletion request; or at least one of the nodes fails and/or hardware of at least one of the nodes fails of Thomas with the methods and systems of Smith resulting in a system that can add and delete resources when people log in or out or if there is a failure of some kind. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “providing customers with great experiences (e.g., fast connections every time they log in), especially when operating under a connection-based or time bucket based billing model in which they do not charge (or do not charge as much) when the resources are not being used (e.g., when no user is connected to the virtual desktop instance)”, (Thomas: ¶110).
Regarding Claim 17, Smith fails to teach:
calculating first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in a case where at least one of the following conditions is satisfied: a resource user executes on a resource scheduling apparatus at least one of: logging in, logging out, or closing a desktop; a resource user initiates a resource addition request or a resource deletion request; or at least one of the nodes fails and/or hardware of at least one of the nodes fails.
However, Thomas teaches: “monitoring and tracking connections to, disconnections from, and reconnections to various virtual desktop instances, and determining whether and/or when to shut down the underlying virtualized computing resources may be performed by the instance managers 322”, (Thomas: ¶45), “the communication may also include information identifying resource usage information, processing requirements, or rules regarding the duration or conditions of the remote computing session for the user of the client computing device”, (Thomas: ¶39), “ “a resource management policy or shutdown policy may explicitly define a schedule for shutting down computing resource instances for virtual desktop instances. For example, an end user may define a schedule for shutting down and/or restarting a computing resource instances for a virtual desktop instance if the end user knows in advance when they will be connecting to and/or disconnecting from the virtual desktop instance”, (Thomas: ¶88), “Service providers that implement virtual desktop instances for the benefit of customers often shut down the underlying service provider resources each time the customer disconnects from their virtual desktop instance (e.g., by logging out)”, (Thomas: ¶3), “the service provider (or computing resource instance manager) may track when each virtual desktop instance is “in use”, meaning that a customer (e.g., an end user in a service provider customer organization) is logged in/connected (e.g., through a client) to the virtual desktop instance.”, (Thomas: ¶76), “With virtualization, the single physical computing device can create, maintain or delete virtual machines in a dynamic manner”, (Thomas: ¶2), “receiving (e.g., by a service provider) from a user (e.g., through a client), a request specifying a computing resource instance type, a storage volume capacity, and a shutdown policy for a virtual desktop instance…”, (Thomas: ¶107), “restarting or booting up a computing resource instance of the specified type (as in 1070) and reattaching and remounting the storage volumes, while adding or removing capacity, if applicable (as in 1075)”, (Thomas: ¶108), “the service provider computer network 305 may be able to mitigate the effect of failures of the data center computer(s) 310 running the virtual desktop instances 314 or errors associated with the execution”, (Thomas: ¶47), “multiple servers with independent failure profiles for backup or fault performance purposes. For example, the servers may be attached to different power sources or cooling systems…”, (Thomas: ¶48), “the PES 302 may switch the connection of the virtual desktop instance 314 from the desktop store to the back-up desktop store”, (Thomas: ¶48).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the calculation module is configured to calculate first resource parameters of respective nodes and second resource parameters of respective resource users at the respective nodes in a case where at least one of the following conditions is satisfied: a resource user executes on a resource scheduling apparatus at least one of: logging in, logging out, or closing a desktop; a resource user initiates a resource addition request or a resource deletion request; or at least one of the nodes fails and/or hardware of at least one of the nodes fails of Thomas with the methods and systems of Smith resulting in a system that can add and delete resources when people log in or out or if there is a failure of some kind. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “providing customers with great experiences (e.g., fast connections every time they log in), especially when operating under a connection-based or time bucket based billing model in which they do not charge (or do not charge as much) when the resources are not being used (e.g., when no user is connected to the virtual desktop instance)”, (Thomas: ¶110).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHIHAB ALAM whose telephone number is (571)272-8705. The examiner can normally be reached Mon - Fri 7:30am-5pm.
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, Bradley Teets can be reached at (571) 272-3338. 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.
/SHIHAB ALAM/Examiner, Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197