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 .
Claims 1-18 are pending in this application.
Response to Arguments
Applicant’s arguments regarding the rejections of claims 1-17 under 35 U.S.C. 112b have been fully considered and are persuasive. The rejections have been withdrawn. However, new 35 U.S.C. 112b rejections are applied to claims 1-18 based on the amendments.
Applicant's arguments regarding the 35 U.S.C. 103 rejections of claims 1-17 have been fully considered but they are moot in light of the references being applied in the current rejection.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-18 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
As per claims 1, 5, and 13 (line numbers refer to claim 1):
Lines 15-17 recite “wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools”, but lines 11-12 recite “maximize a consumption of available resources for each resource pool of the plurality of resource pools”. Therefore, it is unclear if “the maximizing” refers to maximizing in line 11 since maximizing in line 11 refers to maximizing available resources for each resource pool of the plurality of resource pools and “the maximizing” in line 15 only refers to maximizing consumption of available resources of a resource pool.
Lines 23-24 recite “maximize the consumption of available resources” but it is unclear what available resources on which resource pool this refers to.
Claims 2-4, 6-12, and 14-18 are dependent claims of claims 1, 5, and 13, and fail to resolve the deficiencies of claims 1, 5, and 13, so they are rejected for similar reasons.
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, 4-8, and 11-17 are rejected under 35 U.S.C. 103 as being unpatentable over Davis et al. (US 8850442 B2 hereinafter Davis), in view of Nguyen (US 10630566 B1), and further in view of Xu et al. (US 20220300323 A1 hereinafter Xu).
Davis and Nguyen were cited in a prior office action.
As per claim 1, Davis teaches the invention substantially as claimed including a non-transitory computer-readable media having instructions thereof which when executed by one or more processors cause the one or more processors to perform operations for allocating resources, the operations comprising (claim 24. A non-transitory, computer-readable memory device comprising computer executable instructions for causing one or more processors; Col. 2 lines 51-53 reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources;):
interfacing, via one or more Application Programming Interfaces (APIs), with a plurality of resource pools having a first computing cluster and a second computing cluster, wherein each computing cluster includes at least two servers (Fig. 9B (Fig. 9B shows cluster 1 with two servers and cluster 2 with two servers); Col. 8 lines 7-11 Custom client application 402-2 may include a software component specifically designed for interacting with VMM control device 106-2 and/or hypervisor cluster 108-1, e.g., via an application programming interface (API); Col. 8 lines 50-52 As described above, each hypervisors clusters 108-1 may correspond to a number of different physical host devices 112; Col. 4 lines 43-44 physical server devices 112-1 through 112-3);
determining state data about the plurality of resource pools, wherein the determining of the state data about the plurality of resource pools is based on user parameters that are specified in a provisioning request, and wherein the state data is data that comprises CPU utilization, memory and storage (Fig. 8; Fig. 9A; Fig. 9B; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 11 line 61-Col. 12 line 4 FIG. 9B illustrates an exemplary embodiment of a physical device capabilities table 930. As shown physical capabilities table 930 may include a number of entries 932-1 to 932-y (collectively referred to entries 932 and individually as entry 932), with each entry 932 corresponding to a host server in clusters 108-2. Each entry 932 may include fields corresponding to the name of a particular host server (934), the name of the cluster that the server is a part of (936), the number of physical CPUs on the host server (938), the number of CPU cores in each CPU (940), the CPU type (942), the CPU speed (944), and the amount of RAM on the server (946); Col. 10 lines 63-65 determine whether the number of CPU cores requested is less than or equal to the maximum number of CPU cores available on the cluster (block 805); Col. 14 lines 7-8 A determination of the remaining RAM on the cluster; Col. 14 lines 19-21 determine whether the remaining amount of RAM on the cluster is greater than or equal to the requested amount of RAM; claim 9 determining whether a number of virtual machine disk files per datastore for the requested virtual machine is less than or equal to a maximum number of virtual machine disk files per datastore for the cluster; Col. 17 lines 19-23 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space.);
calculating, based on the state data, an efficiency parameter for each resource pool of the plurality of resource pools for both the first computing cluster and the second computing cluster, wherein the efficiency parameter relates to a utilization of the state data, including the CPU utilization, the memory, and the storage, for satisfying the user parameters (Fig. 11; Col. 17 lines 5-9 For example, in one implementation, clusters may be ranked based on the RAM fill percentage, such that a candidate cluster having a lower RAM fill percentage is ranked higher than a candidate cluster having a higher RAM fill percentage; Col. 13 lines 53-60 Using an example from tables 900, 930, and 950, and assuming the Cluster 1 includes 8 host servers, each having 32 GB of RAM, it can be determined that the remaining (allocatable) RAM on Cluster1 may be calculated as [8 (host servers)*32 (RAM per host server)*1.25 (RAM overallocation limit for Cluster1)]-292 (allocated RAM)=320-292=28 GB. This indicates that Cluster1 has 28 GB of RAM that may be allocated to new VMs; Col. 16 lines 16-24 resource management device 104-3 may calculate a score for the cluster (block 1105). In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 8 lines 24-26 That is, network management device 104-3 may identify a particular cluster to use for creation of a VM to meet the customer's requirements; Col. 10 lines 47-50 By providing a system for identifying, filtering, scoring, and ranking candidate clusters, prior to provisioning a VM, an optimal allocation of resources may be selected thereby providing the most efficient upgrade potential for the user; claim 16 rank the resources in the candidate resource listing based on the scores; select an optimal resource from among the candidate resources, for hosting the requested virtual machine based on the ranking; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate);
determining that the first computing cluster more efficiently satisfies the provisioning request relative to the second computing cluster based on results of the calculating (Col. 17 lines 5-9 For example, in one implementation, clusters may be ranked based on the RAM fill percentage, such that a candidate cluster having a lower RAM fill percentage is ranked higher than a candidate cluster having a higher RAM fill percentage; Col. 10 lines 33-39 Resource management device 104-3 may score the candidate clusters and may rank the candidate clusters based on their scores (block 625). Based on the ranking, an optimal cluster for placement of the VM may be identified (block 630). For example, resource management device 104-3 may select the highest ranking candidate cluster as the optimal cluster; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 10 lines 47-50 By providing a system for identifying, filtering, scoring, and ranking candidate clusters, prior to provisioning a VM, an optimal allocation of resources may be selected thereby providing the most efficient upgrade potential for the user;); and
provisioning, responsive to the provisioning request, computing resources on the first computing cluster for executing a job, wherein the provisioning allocates an amount of the computing resources from one or both of the at least two servers of the first computing cluster that satisfies the calculated efficiency parameter (Col. 3 lines 20-26 resource management device 104-3 may identify available underlying resources (e.g., server clusters) that match or otherwise accommodate the requested resource (e.g., a VM), rank the matching underlying resources based on suitability for the requesting entity and a number of additional factors, and provision or create the requested resource based on the highest ranking matching resource; Col. 2 lines 49-53 In providing the provisioning services, resource management network 104 may track pools of resources that are available to user device 130, reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources to user device 130; Col. 13 lines 54-56 assuming the Cluster 1 includes 8 host servers, each having 32 GB of RAM, it can be determined that the remaining (allocatable) RAM on Cluster1 may be calculated; claim 16 drive an execution of the jobs in the database, the jobs comprising instructions for one or more of devices in the system to provision the requested virtual machine on the selected optimal resource; Col. 10 lines 47-50 By providing a system for identifying, filtering, scoring, and ranking candidate clusters, prior to provisioning a VM, an optimal allocation of resources may be selected thereby providing the most efficient upgrade potential); and
executing the job on the computing resources provisioned on the first computing cluster (claim 16 drive an execution of the jobs in the database, the jobs comprising instructions for one or more of devices in the system to provision the requested virtual machine on the selected optimal resource; claim 13 selecting an optimal resource for hosting the requested virtual machine based on the ranking further comprises: selecting the highest ranking cluster; Col. 2 lines 49-53 In providing the provisioning services, resource management network 104 may track pools of resources that are available to user device 130, reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources).
Davis fails to teach determining, via the one or more APIs, state data about the plurality of resource pools, based on a result of the interfacing; wherein the state data is real-time data; calculating, based on the state data, an efficiency parameter to maximize a consumption of available resources for each resource pool of the plurality of resource pools, and wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools; wherein the provisioning allocates an amount of the computing resources that satisfies the calculated efficiency parameter to maximize the consumption of available resources.
However, Nguyen teaches determining, via the one or more APIs, state data about the plurality of resource pools, based on a result of the interfacing (Col. 18 lines 48-49 monitor health state of one or more service-providing clusters; Col. 6 lines 9-16 A programmatic interface, such as an API, may be implemented to allow a requester to submit a cluster health status query. In one embodiment, special monitoring APIs may be supported by the SPC and/or MC nodes to be used to monitor node and cluster health, e.g., an “ARE_YOU_HEALTHY” query API call may be issued from a monitoring or meta-monitoring agent).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis with the teachings of Nguyen since using APIs to monitor clusters promote efficiency.
Davis and Nguyen fail to teach wherein the state data is real-time data; calculating, based on the state data, an efficiency parameter to maximize a consumption of available resources for each resource pool of the plurality of resource pools, and wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools; wherein the provisioning allocates an amount of the computing resources that satisfies the calculated efficiency parameter to maximize the consumption of available resources.
However, Xu teaches wherein the state data is real-time data ([0179] monitoring a use bandwidth of the server in real time); calculating, based on the state data, an efficiency parameter to maximize a consumption of available resources for each resource pool of the plurality of resource pools, and wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools; wherein the provisioning allocates an amount of the computing resources that satisfies the calculated efficiency parameter to maximize the consumption of available resources ([0243] S836: Evaluate the network transmission performance score of the candidate node from a hardware resource dimension, where an objective of performing evaluation by using this dimension is to reduce resource fragmentation, increase, to the greatest extent, a possibility of placing tasks requiring big hardware resources, and preferentially place tasks full in a candidate node with a small quantity of remaining hardware resources; [0008] where each candidate node set includes a plurality of candidate nodes; and selecting a candidate node with a highest network transmission performance score from an m.sup.th candidate node set; [0035] When it is determined that the hardware resources that are of the candidate node and that are used for job training are already used, hardware resource usage, that is, the allocation rate of the hardware resources, is further determined. A higher allocation rate indicates more sufficient use of the hardware resources of the candidate node. In this case, it is expected that tasks are allocated to the candidate node, so that the candidate node can fully use the hardware resources of the candidate node. Therefore, the increasing amplitude for the performance score of the candidate node is increased).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis and Nguyen with the teachings of Xu to improve efficiency (see Xu [0007] This disclosure provides a job scheduling method and a job scheduling apparatus, so as to shorten runtime of a target job, and improve operation efficiency of the target job.).
As per claim 2, Davis, Nguyen, and Xu teach the non-transitory computer-readable media of claim 1. Davis teaches wherein the operations further comprise ranking the plurality of resource pools that can satisfy the provisioning request based upon the state data and how efficiently each of the resource pools satisfy the user parameters (Col. 3 lines 13-26 may identify available resources (e.g., server clusters) corresponding to the request, rank the available resources based on a score calculated for each resource, and initiate fulfillment of the request to the highest ranking resource. In performing these tasks, resource management device 104-3 may execute functions that are listed in FIG. 5. For example, resource management device 104-3 may identify available underlying resources (e.g., server clusters) that match or otherwise accommodate the requested resource (e.g., a VM), rank the matching underlying resources based on suitability for the requesting entity and a number of additional factors, and provision or create the requested resource based on the highest ranking matching resource; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate;).
As per claim 4, Davis, Nguyen, and Xu teach the non-transitory computer-readable media of claim 1. Xu teaches further comprising dynamically updating the state data in real-time ([0179] monitoring a use bandwidth of the server in real time).
As per claim 5, Davis teaches a system comprising: one or more processors; and logic encoded in one or more non-transitory computer-readable storage media for execution by the one or more processors and when executed operable to cause the one or more processors to perform operations for allocating resources (claim 24. A non-transitory, computer-readable memory device comprising computer executable instructions for causing one or more processors; Col. 2 lines 51-53 reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources), the operations comprising:
receiving a provisioning request to provision computing resources for executing a job, wherein the provisioning request includes a plurality of user-specified parameters (Col. 8 lines 16-18 Users may initiate provisioning of a particular VM 108-2, based on information provided in an initial resource request, such as CPU speed, number of cores, required memory; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate; Col. 3 lines 8-15 Resource management device 104-3 may receive a request for services from administrator/user device 120/130 via portal devices 102-1 and 102-2, and render the requested services. In addition, as described below, upon receiving a request for a particular resource, such as a request for Virtual Machine (VM) allocation, resource management device 104-3 may identify available resources (e.g., server clusters) corresponding to the request; claim 16 drive an execution of the jobs in the database, the jobs comprising instructions for one or more of devices in the system to provision the requested virtual machine on the selected optimal resource);
interfacing, via an Application Programming Interface (API), with a plurality of resource pools having a first computing cluster and a second computing cluster, based on the provisioning request, wherein each computing cluster includes at least two servers (Fig. 9B (Fig. 9B shows cluster 1 with two servers and cluster 2 with two servers); Col. 8 lines 7-11 Custom client application 402-2 may include a software component specifically designed for interacting with VMM control device 106-2 and/or hypervisor cluster 108-1, e.g., via an application programming interface (API); Col. 8 lines 50-52 As described above, each hypervisors clusters 108-1 may correspond to a number of different physical host devices 112; Col. 4 lines 43-44 physical server devices 112-1 through 112-3);
determining state data about the plurality of resource pools, wherein the determining of the state data is based on the plurality of user-specified parameters (Fig. 8; Fig. 9A; Fig. 9B; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 11 line 61-Col. 12 line 4 FIG. 9B illustrates an exemplary embodiment of a physical device capabilities table 930. As shown physical capabilities table 930 may include a number of entries 932-1 to 932-y (collectively referred to entries 932 and individually as entry 932), with each entry 932 corresponding to a host server in clusters 108-2. Each entry 932 may include fields corresponding to the name of a particular host server (934), the name of the cluster that the server is a part of (936), the number of physical CPUs on the host server (938), the number of CPU cores in each CPU (940), the CPU type (942), the CPU speed (944), and the amount of RAM on the server (946); Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate);
calculating, based on the state data, an efficiency parameter for each resource pool of the plurality of resource pools for both the first computing cluster and the second computing cluster, wherein the efficiency parameter relates to a utilization of the state data for satisfying the plurality of user-specified parameters (Fig. 11; Col. 17 lines 5-9 For example, in one implementation, clusters may be ranked based on the RAM fill percentage, such that a candidate cluster having a lower RAM fill percentage is ranked higher than a candidate cluster having a higher RAM fill percentage; Col. 13 lines 53-60 Using an example from tables 900, 930, and 950, and assuming the Cluster 1 includes 8 host servers, each having 32 GB of RAM, it can be determined that the remaining (allocatable) RAM on Cluster1 may be calculated as [8 (host servers)*32 (RAM per host server)*1.25 (RAM overallocation limit for Cluster1)]-292 (allocated RAM)=320-292=28 GB. This indicates that Cluster1 has 28 GB of RAM that may be allocated to new VMs; Col. 16 lines 16-24 resource management device 104-3 may calculate a score for the cluster (block 1105). In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 8 lines 24-26 That is, network management device 104-3 may identify a particular cluster to use for creation of a VM to meet the customer's requirements; Col. 10 lines 47-50 By providing a system for identifying, filtering, scoring, and ranking candidate clusters, prior to provisioning a VM, an optimal allocation of resources may be selected thereby providing the most efficient upgrade potential for the user; claim 16 rank the resources in the candidate resource listing based on the scores; select an optimal resource from among the candidate resources, for hosting the requested virtual machine based on the ranking; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate);
determining at least one resource pool from the plurality of resource pools capable of satisfying the provisioning request based upon results of the calculating (Fig. 8; Col. 8 lines 25-26 identify a particular cluster to use for creation of a VM to meet the customer's requirements; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 10 lines 33-39 Resource management device 104-3 may score the candidate clusters and may rank the candidate clusters based on their scores (block 625). Based on the ranking, an optimal cluster for placement of the VM may be identified (block 630). For example, resource management device 104-3 may select the highest ranking candidate cluster as the optimal cluster;);
provisioning computing resources on a first resource pool from the plurality of resource pools that has been determined capable of satisfying the provisioning request and that satisfies the calculated efficiency parameter (Col. 3 lines 20-26 resource management device 104-3 may identify available underlying resources (e.g., server clusters) that match or otherwise accommodate the requested resource (e.g., a VM), rank the matching underlying resources based on suitability for the requesting entity and a number of additional factors, and provision or create the requested resource based on the highest ranking matching resource; Col. 2 lines 49-53 In providing the provisioning services, resource management network 104 may track pools of resources that are available to user device 130, reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources to user device 130; Col. 10 lines 47-50 By providing a system for identifying, filtering, scoring, and ranking candidate clusters, prior to provisioning a VM, an optimal allocation of resources may be selected thereby providing the most efficient upgrade potential); and
executing the job on the computing resources provisioned on the first resource pool (claim 16 drive an execution of the jobs in the database, the jobs comprising instructions for one or more of devices in the system to provision the requested virtual machine on the selected optimal resource; claim 13 selecting an optimal resource for hosting the requested virtual machine based on the ranking further comprises: selecting the highest ranking cluster; Col. 2 lines 49-53 In providing the provisioning services, resource management network 104 may track pools of resources that are available to user device 130, reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources).
Davis fails to teach determining, via the API, state data about the plurality of resource pools based on a result of the interfacing, and wherein the state data is real-time data; calculating, based on the state data, an efficiency parameter to maximize a consumption of available resources for each resource pool of the plurality of resource pools, and wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools; provisioning computing resources on a first resource pool from the plurality of resource pools that satisfies the calculated efficiency parameter to maximize the consumption of available resources.
However, Nguyen teaches determining, via the API, state data about the plurality of resource pools based on a result of the interfacing (Col. 18 lines 48-49 monitor health state of one or more service-providing clusters; Col. 6 lines 9-16 A programmatic interface, such as an API, may be implemented to allow a requester to submit a cluster health status query. In one embodiment, special monitoring APIs may be supported by the SPC and/or MC nodes to be used to monitor node and cluster health, e.g., an “ARE_YOU_HEALTHY” query API call may be issued from a monitoring or meta-monitoring agent; Col. 3 lines 42-44 the cluster C1 may be termed the “service-providing cluster (SPC)”;).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis with the teachings of Nguyen since using APIs to monitor clusters promote efficiency.
Davis and Nguyen fail to teach wherein the state data is real-time data; calculating, based on the state data, an efficiency parameter to maximize a consumption of available resources for each resource pool of the plurality of resource pools, and wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools; provisioning computing resources on a first resource pool from the plurality of resource pools that satisfies the calculated efficiency parameter to maximize the consumption of available resources.
However, Xu teaches wherein the state data is real-time data ([0179] monitoring a use bandwidth of the server in real time); calculating, based on the state data, an efficiency parameter to maximize a consumption of available resources for each resource pool of the plurality of resource pools, and wherein the maximizing of the consumption of available resources includes prioritizing a filling up of an entirety of a resource pool from the plurality of resource pools; provisioning computing resources on a first resource pool from the plurality of resource pools that satisfies the calculated efficacy parameter to maximize the consumption of available resources ([0243] S836: Evaluate the network transmission performance score of the candidate node from a hardware resource dimension, where an objective of performing evaluation by using this dimension is to reduce resource fragmentation, increase, to the greatest extent, a possibility of placing tasks requiring big hardware resources, and preferentially place tasks full in a candidate node with a small quantity of remaining hardware resources; [0008] where each candidate node set includes a plurality of candidate nodes; and selecting a candidate node with a highest network transmission performance score from an m.sup.th candidate node set; [0035] When it is determined that the hardware resources that are of the candidate node and that are used for job training are already used, hardware resource usage, that is, the allocation rate of the hardware resources, is further determined. A higher allocation rate indicates more sufficient use of the hardware resources of the candidate node. In this case, it is expected that tasks are allocated to the candidate node, so that the candidate node can fully use the hardware resources of the candidate node. Therefore, the increasing amplitude for the performance score of the candidate node is increased).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis and Nguyen with the teachings of Xu to improve efficiency (see Xu [0007] This disclosure provides a job scheduling method and a job scheduling apparatus, so as to shorten runtime of a target job, and improve operation efficiency of the target job.).
As per claim 6, Davis, Nguyen, and Xu teach the system of claim 5. Davis teaches wherein the operations further comprise ranking the plurality of resource pools that can satisfy the provisioning request based upon the state data and how efficiently each of the resource pools satisfy the user-specified parameters (Col. 3 lines 13-26 may identify available resources (e.g., server clusters) corresponding to the request, rank the available resources based on a score calculated for each resource, and initiate fulfillment of the request to the highest ranking resource. In performing these tasks, resource management device 104-3 may execute functions that are listed in FIG. 5. For example, resource management device 104-3 may identify available underlying resources (e.g., server clusters) that match or otherwise accommodate the requested resource (e.g., a VM), rank the matching underlying resources based on suitability for the requesting entity and a number of additional factors, and provision or create the requested resource based on the highest ranking matching resource; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate;).
As per claim 7, Davis, Nguyen, and Xu teach the system of claim 6. Davis teaches wherein the user-specified parameters are for CPU, memory and storage (Col. 8 lines 16-18 Users may initiate provisioning of a particular VM 108-2, based on information provided in an initial resource request, such as CPU speed, number of cores, required memory; Col. 15 lines 47-49 the calculated datastore usage percentage for the datastores based on the requested VM).
As per claim 8, Davis, Nguyen, and Xu teach the system of claim 6. Davis teaches wherein the state data is for CPU, memory and storage (Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; claim 8 determining, for each cluster in the candidate cluster listing, whether the datastores associated with the cluster can accommodate the requested virtual machine).
As per claim 11, Davis, Nguyen, and Xu teach the system of claim 5. Davis teaches wherein the provisioning of computing resources allocates an amount of resource from the first resource pool (Col. 2 lines 49-53 In providing the provisioning services, resource management network 104 may track pools of resources that are available to user device 130, reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources to user device 130; Col. 3 lines 13-26 may identify available resources (e.g., server clusters) corresponding to the request, rank the available resources based on a score calculated for each resource, and initiate fulfillment of the request to the highest ranking resource. In performing these tasks, resource management device 104-3 may execute functions that are listed in FIG. 5. For example, resource management device 104-3 may identify available underlying resources (e.g., server clusters) that match or otherwise accommodate the requested resource (e.g., a VM), rank the matching underlying resources based on suitability for the requesting entity and a number of additional factors, and provision or create the requested resource based on the highest ranking matching resource;).
As per claim 12, Davis, Nguyen, and Xu teach the system of claim 5. Davis teaches wherein the operations further comprise ranking the plurality of resource pools according to how well each resource pool satisfies the provisioning request (Col. 3 lines 13-26 may identify available resources (e.g., server clusters) corresponding to the request, rank the available resources based on a score calculated for each resource, and initiate fulfillment of the request to the highest ranking resource. In performing these tasks, resource management device 104-3 may execute functions that are listed in FIG. 5. For example, resource management device 104-3 may identify available underlying resources (e.g., server clusters) that match or otherwise accommodate the requested resource (e.g., a VM), rank the matching underlying resources based on suitability for the requesting entity and a number of additional factors, and provision or create the requested resource based on the highest ranking matching resource; Col. 16 lines 18-24 In some implementations, this score may include scores for each of a number of cluster-based metrics, such as 1) the remaining number of VMs that may be created on the cluster, 2) the number of CPU cores remaining on the cluster, 3) the minimum number of cores per host for the cluster, 4) the maximum number of cores on per host in the cluster, and 5) the percentage of RAM on the cluster that is filled; Col. 17 lines 19-31 When a user wishes to create a VM, the user may connect to an integrated provisioning system via a web portal and submit requirements for the VM, such as its operating system, RAM memory, number of virtual CPUs, and its hard disk drive space. Based on the requested parameters and information relating to existing resources allocated in the system, the integrated resource provisioning system retrieves information regarding available resources, previously allocated resources, and various system limitations. Based on this information, the provisioning system identifies viable candidates and scores/ranks the candidates. An optimal candidate is selected for provisioning and the requested VM is provisioned on the optimal candidate;).
As per claim 13, it is a method claim of claim 5, so it is rejected for similar reasons. Additionally, Davis teaches a method for resource provisioning (Col. 2 lines 49-53 In providing the provisioning services, resource management network 104 may track pools of resources that are available to user device 130, reserve a portion of the resources based on a request from user device 130, and allocate the reserved resources to user device 130.).
As per claims 14 and 15, they are method claims of claims 11 and 12, respectively, so they are rejected for similar reasons.
As per claim 16, Davis, Nguyen, and Xu teach the non-transitory computer-readable media of claim 1. Davis teaches further comprising aggregating a first resource type from multiple sources into a single resource pool from the plurality of resource pools (Col. 13 lines 54-55 the Cluster 1 includes 8 host servers, each having 32 GB of RAM).
As per claim 17, Davis, Nguyen, and Xu teach the non-transitory computer-readable media of claim 1. Davis teaches further comprising transmitting an API call from a resource provisioning network to the plurality of resource pools to initiate the interfacing with the plurality of resource pools (Col. 9 lines 39-42 , the request to build or provision a VM may be received by resource management device 104-3 via an API executing or called by a client application; Col. 8 lines 7-11 Custom client application 402-2 may include a software component specifically designed for interacting with VMM control device 106-2 and/or hypervisor cluster 108-1, e.g., via an application programming interface (API)).
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Davis, Nguyen, and Xu, as applied to claim 1 above, in view of Atherton et al. (US 20170060807 A1 hereinafter Atherton).
Atherton was cited in a prior office action.
As per claim 3, Davis, Nguyen, and Xu teach the non-transitory computer-readable media of claim 2. Davis teaches wherein the operations further comprise provisioning from a highest ranked resource pool until the provisioning request is effectuated (claim 13 selecting an optimal resource for hosting the requested virtual machine based on the ranking further comprises: selecting the highest ranking cluster from the clusters remaining in the candidate cluster listing.).
Davis, Nguyen, and Xu fail to teach iteratively provisioning from a highest ranked resource pool to a lowest ranked resource pool until the provisioning request is effectuated.
However, Atherton teaches iteratively provisioning from a highest ranked resource pool to a lowest ranked resource pool until the provisioning request is effectuated ([0081] The optimization module 302 begins with assigning the expansion device 110 having the highest average flow control usage and that is sufficiently near the flow control limit of its expansion bus slot 112 (e.g., within a threshold percentage of the flow control limit) and continues to assigns those expansion devices 110 sufficiently near the flow control limit of their expansion bus slots 112, in order from highest to lowest average flow control usage; [0092] After assigning the candidate device with the highest average flow control usage to an expansion bus slot 112, the placement module 314 proceeds to iteratively assign any remaining candidate devices in the same manner, in order from highest to lowest average flow control usage; [0088] ranking of candidate devices from highest to lowest average flow control usage).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis, Nguyen, and Xu with the teachings of Atherton to optimally assign resources (see Atherton [0049] optimally assign expansion devices to expansion bus slots based on the flow control data.).
Claims 9 and 10 are rejected under 35 U.S.C. 103 as being unpatentable over Davis, Nguyen, and Xu, as applied to claim 5 above, in view of Petroulas (US 20230100529 A1).
Petroulas was cited in a prior office action.
As per claim 9, Davis, Nguyen, and Xu teach the system of claim 5.
Davis, Nguyen, and Xu fail to teach wherein the provisioning request is for an event venue.
However, Petroulas teaches wherein the provisioning request is for an event venue ([0238] allocating bookings within a space for a defined period of time in a venue).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis, Nguyen, and Xu with the teachings of Petroulas to provide a venue that matches desired parameters (see Petroulas [1028] Furthermore, the embodiment also provides additional advantages as the optimisation of the use of the venue can be modified to maximise certain desired outcomes.).
As per claim 10, Davis, Nguyen, and Xu teach the system of claim 5.
Davis, Nguyen, and Xu fail to teach wherein the user-specified parameters are for cost, location, video, audio, catering of an event venue.
However, Petroulas teaches wherein the user-specified parameters are for cost, location, video, audio, catering of an event venue ([0429] In one embodiment, the interface utilises feedback information from the user, and optionally, historical data, to provide intuitive suggestions to enhance a function experience and/or to offer an alternatives when the first preference is not available. This may include capturing information such as occasion type, experience sought, theme of event, group size, budget or other constraints; claim 61 identifying, in the volume, an available location for the first unallocated request, the available location satisfying at least one first constraint associated with the first unallocated request; [0432] In one embodiment, the interface is arranged to provide a floor plan to the user whereby the floor plan dynamically alters depending on the booking information provided. This may include appropriate table configurations, decorations, audio-visual equipment; [0332] In one embodiment, a customer can create a tailored and personalised dining experience where they can select any number of personalised services such as, their personal waiter, a specific flower arrangement on the table or a bunch of flowers for their guest, a bottle of champagne next to their table to be opened on their arrival, a specific food and beverage menu or specific food and beverage items including the provision of a specific vintage or rare bottle of wine).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis, Nguyen, and Xu with the teachings of Petroulas to provide a venue that matches desired parameters (see Petroulas [1028] Furthermore, the embodiment also provides additional advantages as the optimisation of the use of the venue can be modified to maximise certain desired outcomes.).
Claim 18 is rejected under 35 U.S.C. 103 as being unpatentable over Davis, Nguyen, and Xu, as applied to claim 1 above, in view of Zhu et al. (US 20120331478 A1 hereinafter Zhu).
As per claim 18, Davis, Nguyen, and Xu teach the non-transitory computer-readable media of claim 1.
Davis, Nguyen, and Xu fail to teach wherein the efficiency parameter may be weighted as a factor against a historical utilization level that is stored in a database, wherein the historical utilization level is a listing of prior actual utilizations of allocated resources by a user.
However, Zhu teaches wherein the efficiency parameter may be weighted as a factor against a historical utilization level that is stored in a database, wherein the historical utilization level is a listing of prior actual utilizations of allocated resources by a user ([0172] a current threshold of resource utilization ratio for resource allocation by a scheduler is generated according to a part or all of historically statistical resource usage information, statistical amount of data to be transmitted, an average spectrum efficiency of the system; [0174] a statistic of resource demands of respective groups of users; [0181] the invention can be embodied in the form of a computer program product embodied in one or more computer useable storage mediums (including but not limited to a disk memory, a CD-ROM, an optical memory, etc.)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined Davis, Nguyen, and Xu with the teachings of Zhu to improve performance (see Zhu [0077] performance becomes better).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HSING CHUN LIN whose telephone number is (571)272-8522. The examiner can normally be reached Mon - Fri 9AM-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, Aimee Li can be reached at (571) 272-4169. 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.
/H.L./Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195