DETAILED ACTION
1. Claims 1-20 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
2. The information disclosure statement (IDS) submitted on November 7, 2023 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Objections
3. Claim 20 objected to because of the following informalities: “Transit” should be transmit. Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
4. Claims 1-20 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.
5. Step 1:
Claims 1-7 are directed to a resource analysis system and fall within the statutory category of machines; claims 8-13 are directed to a computer-implemented method for a resource analysis system and fall within the statutory category of processes; and claims 14-20 are directed to a resource allocation server and fall within the statutory category of processes. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
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.
6. Step 2A Prong 1:
Claims 1 and 8: The limitations of “receive history data of one or more data processes; determine an average central processing unit (CPU) resource and an average memory resource of a data process of the one or more data processes based on the history data; determine a resource type of the data process based on the average CPU resource and the average memory resource; and transmit a resource type report to a resource record server, wherein the resource type report indicates the resource type of the data process and the data process”, 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. Simply receiving history data of one or more data processes and transmitting a resource type report to a resource record server is merely insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application under Prong 2. See MPEP 2106.05(g). Under Step 2B, the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception. See MPEP 2106.05(d). Moreover, “determine an average central processing unit (CPU) resource and an average memory resource of a data process of the one or more data processes based on the history data; determine a resource type of the data process based on the average CPU resource and the average memory resource” recites a mathematical concept since the claim requires “determining average CPU resource and average memory resource of a data process and determining a resource type based on the average,” which are mathematical calculations.
Therefore, Yes, claim 1 recites 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.
Claim 14: The limitations of “receive a request for a data process; determine an identification of the data process based on the request; retrieve a resource type of the data process based on the identification; and assign the data process to a computing server based on the resource type”, 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. Simply retrieving a resource type based on an identification is merely insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application under Prong 2. See MPEP 2106.05(g). Under Step 2B, the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception. See MPEP 2106.05(d). Moreover, “assign the data process to a computing server based on the resource type” merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea.
Therefore, Yes, claim 1 recites 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.
7. Step 2A Prong 2:
Claims 1, 8, and 14: The judicial exception is not integrated into a practical application. In particular, the claim recites the following additional elements – “A resource analysis system, comprising: a memory; and at least one processor coupled to the memory and configured to:”; “A computer-implemented method for a resource analysis system, comprising”; and “A resource allocation server, comprising: a memory; and at least one processor coupled to the memory and configured to:”, which is merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application.
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 claim 1 not only recites a judicial exception but that the claim is directed to the judicial exception as the judicial exception has not been integrated into practical application.
8. Step 2B:
Claims 1, 8, and 14: 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 and field of use/technological environment 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, 8, and 14 do not recite patent eligible subject matter under 35 U.S.C. § 101.
9. With regard to claims 2 and 9, they recite additional abstract idea recitations of “wherein the history data are within a predetermined period of time”, 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 and observe, judge and evaluate that the history data are within a predetermined period of time. Additionally, defining the history data is merely applying the judicial exception or abstract idea. Therefore, this additional element does not integrate the judicial exception into a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 2 and 9 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 2 and 9 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 2 and 9 do not recite patent eligible subject matter under 35 U.S.C. § 101.
10. With regard to claims 3 and 10, they recite additional abstract idea recitations of “wherein the data process includes a computer program job, and wherein the resource type report indicates the computer program job using a job identification (ID)”, 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 and observe, judge and evaluate that the data process includes a computer program job and the resource type report indicates the computer program job using a job ID. Additionally, this is merely applying the judicial exception or abstract idea. Therefore, this additional element does not integrate the judicial exception into a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 3 and 10 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 3 and 10 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 3 and 10 do not recite patent eligible subject matter under 35 U.S.C. § 101.
11. With regard to claims 4, 11, and 16, they recite additional abstract idea recitations of “wherein the data process includes a data query”, 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. This is merely applying the judicial exception or abstract idea. Therefore, this additional element does not integrate the judicial exception into a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 4, 11, and 16 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 4, 11, and 16 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 4, 11, and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101.
12. With regard to claims 5, 11, and 16, they recite additional abstract idea recitations of “wherein the resource type report indicates the data query using a uniform resource identifier (URI) and a request method”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 5, 11, and 16 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 5, 11, and 16 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 5, 11, and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101.
13. With regard to claims 6 and 12, they recite additional abstract idea recitations of “wherein to determine the resource type of the data process, the at least one processor is further configured to: determine a base CPU resource and a base memory resource; and determine the resource type of the data process based on the base CPU resource and the base memory resource”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 6 and 12 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 6 and 12 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 6 and 12 do not recite patent eligible subject matter under 35 U.S.C. § 101.
14. With regard to claims 7 and 12, they recite additional abstract idea recitations of “wherein to determine the resource type of the data process, the at least one processor is further configured to: determine a base CPU resource and a base memory resource; and determine the resource type of the data process based on the base CPU resource and the base memory resource”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 6 and 12 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 6 and 12 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 6 and 12 do not recite patent eligible subject matter under 35 U.S.C. § 101.
15. With regard to claims 7 and 13, they recite additional abstract idea recitations of “wherein the base CPU resource corresponds to CPU costs of the one or more data processes, and wherein the base memory resource corresponds to memory costs of the one or more data processes”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claims 7 and 13 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 7 and 13 also fail both Step 2A prong 2, 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 than the abstract idea. Therefore, Claims 7 and 13 do not recite patent eligible subject matter under 35 U.S.C. § 101.
16. With regard to claim 15, it recites additional abstract idea recitations of “wherein to retrieve the resource type of the data process, the at least one processor is further configured to: generate a resource type request that indicates the identification; transmit the resource type request to a resource record server; and receive the resource type from the resource record server.”, 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. Transmitting the resource type request to a resource record server and receiving the resource type from the resource record server merely recites insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application under Prong 2. See MPEP 2106.05(g). Under Step 2B, the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception. See MPEP 2106.05(d). Additionally, “wherein to retrieve the resource type of the data process, the at least one processor is further configured to: generate a resource type request that indicates the identification” merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claim 15 does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 15 also fails both Step 2A prong 2, 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 than the abstract idea. Therefore, Claim 15 does not recite patent eligible subject matter under 35 U.S.C. § 101.
17. With regard to claim 17, it recites additional abstract idea recitations of “wherein the resource type includes a central processing unit (CPU) intense type, a memory intense type, and a balanced type”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claim 17 does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 17 also fails both Step 2A prong 2, 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 than the abstract idea. Therefore, Claim 17 does not recite patent eligible subject matter under 35 U.S.C. § 101.
18. With regard to claim 18, it recites additional abstract idea recitations of “wherein the at least one processor is further configured to: determine that the resource type of the data process is not assigned; and determine that the resource type is a balanced type”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claim 18 does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 18 also fails both Step 2A prong 2, 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 than the abstract idea. Therefore, Claim 18 does not recite patent eligible subject matter under 35 U.S.C. § 101.
19. With regard to claim 19, it recites additional abstract idea recitations of “wherein to assign the data process to the computing server, the at least one processor is further configured to: determine that the computing server corresponds to the resource type of the data process; and transmit the data process to the computing server”, 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. Determining a computing server corresponds to the resource type and transmitting the data process to the computing server merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Additionally, transmitting a data process merely recites insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application under Prong 2. See MPEP 2106.05(g). Under Step 2B, the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception. See MPEP 2106.05(d). Further, claim 19 does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 19 also fails both Step 2A prong 2, 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 than the abstract idea. Therefore, Claim 19 does not recite patent eligible subject matter under 35 U.S.C. § 101.
20. With regard to claim 20, it recites additional abstract idea recitations of “wherein to assign the data process to the computing server, the at least one processor is further configured to: transit the resource type and the data process to a data process queue, wherein the computing server pulls the data process based on the resource type from the data process queue, and wherein the computing server corresponds to the resource type”, 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. This merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2, or amount to significantly more than the judicial exception under Step 2B. See MPEP 2106.05(f). Further, claim 20 does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 20 also fails both Step 2A prong 2, 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 than the abstract idea. Therefore, Claim 20 does not recite patent eligible subject matter under 35 U.S.C. § 101.
21. Therefore, Claims 1-20 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
22. Claims 1-4, and 6-19 are rejected under 35 U.S.C. 102(a)(b) as being anticipated by Ferris et al. US 20130304925 A1.
23. With regard to claim 1, Ferris teaches:
A resource analysis system, comprising:
a memory ([0045] The computing systems can include a number of hardware resources, which are used to support the computing processes (e.g. virtual machines, software appliances, processes and the like) in the clouds 304 and 306, such as processors, memory, network hardware and I/O bandwidth, storage devices, etc.); and
at least one processor coupled to the memory and configured to:
receive history data of one or more data processes ([0082] In another embodiment, the resource usage data can be an empirically measured or recorded usage history for a user and their associated cloud application(s) or process(es). In such an embodiment, the resource usage data can be obtained by monitoring module 324 of decision system 302, for example, as explained with respect to stages 610, 620, and 630 of FIG. 6.);
determine an average central processing unit (CPU) resource and an average memory resource of a data process of the one or more data processes based on the history data ([0087] The relative importance of cloud resources may change over time. For example, the cloud resource usage history of a tax preparation company user may show that in March and April each year, processor usage increases 300%, memory usage increases 250%, and storage usage increases 100%, because of tax season. In one embodiment, the resource importance data may be adjusted to account for historical usage patterns--in this example, adjusted to indicate higher importance for processor resources, memory resources, and storage resources during March and April of each year, which can, in turn, cause an adjustment in the deployment architecture to provide additional processor resources, memory resources, and storage resources during March and April; [0088] In some embodiments, the resource importance data may be adjusted to account for anticipated trends extrapolated from recorded usage history data. For example, consider a case where recorded resource usage data for three consecutive durations or time periods indicates that average processor capacity utilization by a user's application(s) has increased from 7% to 35% to 75%. A projection of this trend into the future indicates that the processor utilization parameter may soon reach 100%. To avoid running out of processor capacity, the resource importance data can be adjusted to indicate the processing capacity has a very high importance, causing, for example, decision system 302 to create a new deployment architecture that includes increased processor capacity to handle the anticipated load.);
determine a resource type of the data process based on the average CPU resource and the average memory resource ([0089] At stage 740, process 700 generates an adjusted requirement for cloud resources from the baseline requirement, where the adjusted requirement reflects the resource importance data. In embodiments, the adjusted requirement may be determined using the resource importance data. In one exemplary embodiment, the resource importance data can be implemented as a factor indicating an amount of relative increase or decrease in a requirement for a cloud resource. For example, if the baseline requirement for processor capacity indicates that required processor capacity is the equivalent of a single, 2.0 GHz, Intel.TM. Core 2.TM. T7200 processor, adjusting the baseline requirement using resource importance data indicating that processor capacity is 200% more important than the baseline requirement, can result in an adjusted requirement indicating that the required processor capacity is the equivalent of three 2.0 GHz, Intel.TM. Core 2.TM. T7200 processors.); and
transmit a resource type report to a resource record server, wherein the resource type report indicates the resource type of the data process and the data process ([0024] As shown for example in FIG. 1, the collection of resources supporting a cloud 102 can comprise a set of resource servers 108 configured to deliver computing components and services (cloud resources) needed to instantiate a virtual machine, process, or other resource. For example, one group of resource servers can host and serve an operating system or components thereof to deliver to and instantiate a virtual machine. Another group of resource servers can accept requests to host computing cycles or processor time, to supply a defined level of processing power resources for a virtual machine. A further group of resource servers can host and serve applications to load on an instantiation of a virtual machine, such as an email client, a browser application, a messaging application, or other applications or software. Other types of resource servers are possible; [0071] In embodiments, the decision system 302 can be configured to provide a report 430, an exemplary instance of which is illustrated in FIG. 4C, to advise the user of resource usage information, deployment architecture options, and parameters. Deployment options can include computing resources, such as, for example, one or more physical machines, one or more virtual machines, one or more public clouds, one or more private clouds, or any combination thereof; [0093] At stage 760, process 700 provides the determined deployment architecture to the user. In one embodiment, this stage may include forwarding a report describing the recommended deployment architecture(s) to the user, as described above with respect to FIG. 4C. In another embodiment, this stage may include assigning the determined deployment architecture to the user's application(s)/process(es) such that they run on the determined deployment architecture.).
24. With regard to claim 2, Ferris further teaches:
wherein the history data are within a predetermined period of time ([0088] In some embodiments, the resource importance data may be adjusted to account for anticipated trends extrapolated from recorded usage history data. For example, consider a case where recorded resource usage data for three consecutive durations or time periods indicates that average processor capacity utilization by a user's application(s) has increased from 7% to 35% to 75%. A projection of this trend into the future indicates that the processor utilization parameter may soon reach 100%. To avoid running out of processor capacity, the resource importance data can be adjusted to indicate the processing capacity has a very high importance, causing, for example, decision system 302 to create a new deployment architecture that includes increased processor capacity to handle the anticipated load.).
25. With regard to claim 3, Ferris further teaches:
wherein the data process includes a computer program job ([0024] A further group of resource servers can host and serve applications to load on an instantiation of a virtual machine, such as an email client, a browser application, a messaging application, or other applications or software.), and
wherein the resource type report indicates the computer program job using a job identification (ID) ([0068] FIG. 4B illustrates an exemplary data set 420 generated by the decision system 302 in accordance to the data definition shown in FIG. 4A. As illustrated, the data set 420 can include data utilized by the decision system 302 to generate customized deployment architectures that account for the relative importance of cloud resources, such as an identifier of a running application, a start date and time, a requester identifier, and data parameters such as a configuration of the current deployment architecture (e.g., a number of machines), a time duration, a number of time intervals, a processor utilization percentage during each interval, a network traffic level during each interval, a storage utilization level during each interval, software license information, and the like; Fig. 4C; Examiner’s Note: Figure 4C depicts a resource type report that includes an application ID.).
26. With regard to claim 4, Ferris further teaches:
wherein the data process includes a data query ([0053] For example, the monitoring module 324 can be configured to retrieve the utilization data 338 associated with the user 310 and/or the computing processes 316 and 318 associated with the user 310. To retrieve the utilization data 338, the monitoring module 324 can be configured to include the necessary logic, commands, instructions, and protocols to search the set 336 of utilization data 338 and to retrieve the utilization data 338 and the access information for the user 310. For instance, the monitoring module 324 can be configured to include the necessary queries and commands to communicate with and retrieve information from the repository 330 regarding the cloud resources used by processes 316 and 318 associated with the user 310.).
27. With regard to claim 6, Ferris further teaches:
wherein to determine the resource type of the data process, the at least one processor is further configured to:
determine a base CPU resource and a base memory resource ([0077] The decision system can also retrieve default or predefined set of parameters (e.g., data definition 410 as shown in FIG. 4) from a computer readable storage medium. For example, the decision system can retrieve predefined parameters from a repository (e.g., repository 330) or communicate with cloud management systems (e.g., cloud management systems 320 and/or 322), software vendors (e.g., software vendors 346), or other sources (e.g., the Internet) to retrieve predefined parameters. The parameters can include, for example, a configuration of a current deployment architecture (e.g., a number of machines), a time duration, a number of time intervals, a processor utilization, a network traffic level, a storage utilization, a memory utilization, a software license information, and other parameters indicating usage of software, hardware, and other cloud resources and capacity.); and
determine the resource type of the data process based on the base CPU resource and the base memory resource ([0078] In 620, the decision system can monitor the applications and/or computing processes as they run in an existing deployment architecture in the cloud computing environment. The decision system can monitor the applications and/or computing processes for a duration of time or indefinitely until the occurrence of an event. In 630, the decision system can record, in real-time or on a periodic basis, resource usage or utilization data and/or other parameter data associated with the applications and/or computing processes in a computer readable storage medium (e.g., utilization data set 336 in repository 330); [0079] In 640, the decision system can retrieve rules, algorithms, and/or heuristics for generating deployment options based on the parameters. The decision system can retrieve the rules from a computer readable storage medium (e.g., deployment rule set 334 in repository 330).).
28. With regard to claim 7, Ferris further teaches:
wherein the base CPU resource corresponds to CPU costs of the one or more data processes ([0018] In accordance with certain embodiments, once the resource usage data is initially collected, the decision system can be configured to determine a baseline requirement for cloud resources from the resource usage data; [0077] The decision system can also retrieve default or predefined set of parameters (e.g., data definition 410 as shown in FIG. 4) from a computer readable storage medium. For example, the decision system can retrieve predefined parameters from a repository (e.g., repository 330) or communicate with cloud management systems (e.g., cloud management systems 320 and/or 322), software vendors (e.g., software vendors 346), or other sources (e.g., the Internet) to retrieve predefined parameters. The parameters can include, for example, a configuration of a current deployment architecture (e.g., a number of machines), a time duration, a number of time intervals, a processor utilization, a network traffic level, a storage utilization, a memory utilization, a software license information, and other parameters indicating usage of software, hardware, and other cloud resources and capacity. One skilled in the art will realize that the other parameters or types of parameters can be used; [0078] In 620, the decision system can monitor the applications and/or computing processes as they run in an existing deployment architecture in the cloud computing environment. The decision system can monitor the applications and/or computing processes for a duration of time or indefinitely until the occurrence of an event. In 630, the decision system can record, in real-time or on a periodic basis, resource usage or utilization data and/or other parameter data associated with the applications and/or computing processes in a computer readable storage medium (e.g., utilization data set 336 in repository 330); [0079] In 640, the decision system can retrieve rules, algorithms, and/or heuristics for generating deployment options based on the parameters. The decision system can retrieve the rules from a computer readable storage medium (e.g., deployment rule set 334 in repository 330).), and
wherein the base memory resource corresponds to memory costs of the one or more data processes ([0018] In accordance with certain embodiments, once the resource usage data is initially collected, the decision system can be configured to determine a baseline requirement for cloud resources from the resource usage data; [0077] The decision system can also retrieve default or predefined set of parameters (e.g., data definition 410 as shown in FIG. 4) from a computer readable storage medium. For example, the decision system can retrieve predefined parameters from a repository (e.g., repository 330) or communicate with cloud management systems (e.g., cloud management systems 320 and/or 322), software vendors (e.g., software vendors 346), or other sources (e.g., the Internet) to retrieve predefined parameters. The parameters can include, for example, a configuration of a current deployment architecture (e.g., a number of machines), a time duration, a number of time intervals, a processor utilization, a network traffic level, a storage utilization, a memory utilization, a software license information, and other parameters indicating usage of software, hardware, and other cloud resources and capacity. One skilled in the art will realize that the other parameters or types of parameters can be used; [0078] In 620, the decision system can monitor the applications and/or computing processes as they run in an existing deployment architecture in the cloud computing environment. The decision system can monitor the applications and/or computing processes for a duration of time or indefinitely until the occurrence of an event. In 630, the decision system can record, in real-time or on a periodic basis, resource usage or utilization data and/or other parameter data associated with the applications and/or computing processes in a computer readable storage medium (e.g., utilization data set 336 in repository 330); [0079] In 640, the decision system can retrieve rules, algorithms, and/or heuristics for generating deployment options based on the parameters. The decision system can retrieve the rules from a computer readable storage medium (e.g., deployment rule set 334 in repository 330).).
29. Regarding claim 8, it is rejected under the same reasoning as claim 1 above. Therefore, it is rejected under the same rationale.
30. Regarding claim 9, it is rejected under the same reasoning as claim 2 above. Therefore, it is rejected under the same rationale.
31. Regarding claim 10, it is rejected under the same reasoning as claim 3 above. Therefore, it is rejected under the same rationale.
32. Regarding claim 11, it is rejected under the same reasoning as claim 4 and 5 above. Therefore, it is rejected under the same rationale.
33. Regarding claim 12, it is rejected under the same reasoning as claim 6 above. Therefore, it is rejected under the same rationale.
34. Regarding claim 13, it is rejected under the same reasoning as claim 7 above. Therefore, it is rejected under the same rationale.
35. With regard to claim 14, Ferris further teaches:
A resource allocation server, comprising:
a memory ([0045] The computing systems can include a number of hardware resources, which are used to support the computing processes (e.g. virtual machines, software appliances, processes and the like) in the clouds 304 and 306, such as processors, memory, network hardware and I/O bandwidth, storage devices, etc.); and
at least one processor coupled to the memory and configured to:
receive a request for a data process([0025] A user can for instance make a request to instantiate a set of virtual machines configured for email, messaging or other applications from the cloud 102.);
determine an identification of the data process based on the request ([0025] The request can be received and processed by the cloud management system 104, which identifies the type of virtual machine, process, or other resource(s) being requested.);
retrieve a resource type of the data process based on the identification ([0025] The cloud management system 104 can then identify a collection of resources needed to instantiate that machine or resource. In determining the needed cloud resources, the cloud management systems can take into account the relative importance of certain resources in comparison to other resources and adjust the composition of the collection of cloud resources to reflect resource importance.); and
assign the data process to a computing server based on the resource type ([0027] In some embodiments, when the request to instantiate a set of virtual machines or other resources has been received and the necessary resources to build that machine or resource have been identified and adjusted to reflect the relative importance of various cloud resources, the cloud management system 104 can communicate with one or more set of resource servers 108 to locate resources that are available to supply the required components. The cloud management system 104 can select providers from the diverse set of resource servers 108 to assemble the various components needed to build the requested set of virtual machines or other resources.).
36. With regard to claim 15, Ferris further teaches:
wherein to retrieve the resource type of the data process, the at least one processor is further configured to:
generate a resource type request that indicates the identification (0025] A user can for instance make a request to instantiate a set of virtual machines configured for email, messaging or other applications from the cloud 102.); ([0025] The request can be received and processed by the cloud management system 104, which identifies the type of virtual machine, process, or other resource(s) being requested);
transmit the resource type request to a resource record server ([0025] The cloud management system 104 can then identify a collection of resources needed to instantiate that machine or resource. In determining the needed cloud resources, the cloud management systems can take into account the relative importance of certain resources in comparison to other resources and adjust the composition of the collection of cloud resources to reflect resource importance.); and
receive the resource type from the resource record server ([0027] In some embodiments, when the request to instantiate a set of virtual machines or other resources has been received and the necessary resources to build that machine or resource have been identified and adjusted to reflect the relative importance of various cloud resources, the cloud management system 104 can communicate with one or more set of resource servers 108 to locate resources that are available to supply the required components. The cloud management system 104 can select providers from the diverse set of resource servers 108 to assemble the various components needed to build the requested set of virtual machines or other resources.).
37. Regarding claim 16, it is rejected under the same reasoning as claim 4 and 5 above. Therefore, it is rejected under the same rationale.
38. With regard to claim 17, Ferris further teaches:
wherein the resource type includes a central processing unit (CPU) intense type, a memory intense type, and a balanced type ([0019] In some embodiments, the decision system includes configurable logic or variables that can be configured to assign different levels of importance to one or more cloud resources included in the resource usage data. For example, the configurable logic or variables may be adjusted so that obtaining a specified level of processor cycles per hour is more important than long-term data storage space; CPU intense; [0066] Another weighting factor can indicate high importance for the application to have 200 megabytes of memory capacity available to it because the application's memory usage over the course of a period of time is at 200 megabytes or less 97 percent of the time; Examiner’s Note: Memory intense; [0077] The decision system can also retrieve default or predefined set of parameters (e.g., data definition 410 as shown in FIG. 4) from a computer readable storage medium. For example, the decision system can retrieve predefined parameters from a repository (e.g., repository 330) or communicate with cloud management systems (e.g., cloud management systems 320 and/or 322), software vendors (e.g., software vendors 346), or other sources (e.g., the Internet) to retrieve predefined parameters. The parameters can include, for example, a configuration of a current deployment architecture (e.g., a number of machines), a time duration, a number of time intervals, a processor utilization, a network traffic level, a storage utilization, a memory utilization, a software license information, and other parameters indicating usage of software, hardware, and other cloud resources and capacity; Examiner’s Note: Default or predefined = balanced type.).
39. With regard to claim 18, Ferris further teaches:
wherein the at least one processor is further configured to:
determine that the resource type of the data process is not assigned ([0076] As processing begins, the decision system in 610 can identify one or more parameters or attributes for analyzing applications and/or computing processes (e.g., processes 316 and/or 318) running in the cloud computing environment; [0077] In embodiments, the parameters can be provided by a user associated with the applications. Alternatively or in addition, the decision system can dynamically determine a set of parameters based on a configuration of the computing environment, the applications, the user associated with the applications, etc.); and
determine that the resource type is a balanced type ([0077] The decision system can also retrieve default or predefined set of parameters (e.g., data definition 410 as shown in FIG. 4) from a computer readable storage medium. For example, the decision system can retrieve predefined parameters from a repository (e.g., repository 330) or communicate with cloud management systems (e.g., cloud management systems 320 and/or 322), software vendors (e.g., software vendors 346), or other sources (e.g., the Internet) to retrieve predefined parameters. The parameters can include, for example, a configuration of a current deployment architecture (e.g., a number of machines), a time duration, a number of time intervals, a processor utilization, a network traffic level, a storage utilization, a memory utilization, a software license information, and other parameters indicating usage of software, hardware, and other cloud resources and capacity; Examiner’s Note: Default or predefined = balanced type.).
40. With regard to claim 19, Ferris further teaches:
wherein to assign the data process to the computing server, the at least one processor is further configured to:
determine that the computing server corresponds to the resource type of the data process ([0024] As shown for example in FIG. 1, the collection of resources supporting a cloud 102 can comprise a set of resource servers 108 configured to deliver computing components and services (cloud resources) needed to instantiate a virtual machine, process, or other resource. For example, one group of resource servers can host and serve an operating system or components thereof to deliver to and instantiate a virtual machine.); and
transmit the data process to the computing server ([0024] Another group of resource servers can accept requests to host computing cycles or processor time, to supply a defined level of processing power resources for a virtual machine. A further group of resource servers can host and serve applications to load on an instantiation of a virtual machine, such as an email client, a browser application, a messaging application, or other applications or software.).
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.
41. Claims 5, 11, and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Ferris et al. US 20130304925 A1, as applied in claim 1, in view of Jayaraman et al. US 20200264934 A1.
42. With regard to claim 5, Ferris teaches the resource analysis of claim 4 but fails to explicitly teach wherein the resource type report indicates the data query using a uniform resource identifier (URI) and a request method.
However, in analogous art, Jayaraman teaches:
wherein the resource type report indicates the data query using a uniform resource identifier (URI) and a request method ([0019] The method includes receiving a resource allocation request for the allocation of a resource, the resource allocation request specifying a set of user requirements. The method further includes receiving an operator policy associated with the resource, the operator policy including one or more policy requirements. The method further includes synthesizing a resource request based on the resource allocation request and the operator policy. Synthesizing the resource request based on the resource allocation request and the operator policy comprises combining the user requirements with the one or more of the policy requirements; [0061] Once the synthesized unified request is received, RSF 222 may send it to the URI 232, and then receive from the URI 232 the available resources matching the request (matching resources or MR); [0070] For example, in a cloud-based domain, a user resource allocation request may look something like: “create-vm <bunch of options> -query “compute.gpuType=IronLake”.” In this example, there may be a tenant policy that looks like compute.CPUutilPercent <=60 as well as an operator policy that looks like computeNode.floor !=4; [0072] In the above example query, the user requirement and policy definitions are fused together into a single request (here a SPARQL query). This query (a.k.a. request) may then be passed back to the URI 232, and allocator 212 may retrieve available results.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Ferris with the teachings of Jayaraman wherein the resource type report indicates the data query using a uniform resource identifier (URI) and a request method. Ferris teaches using queries in order to retrieve relevant user data in order to allocate the appropriate number of resources. Similarly, Jayaraman teaches of resource allocation by matching the type of resource based on the user’s requirements and policy criteria. Moreover, Jayaraman teaches of utilizing a URI in order to receive the available resources that match the request. This seamlessly enables policy enforcement without imperative coding, as discussed in Jayaraman ([0072]).
43. Regarding claim 11, it is rejected under the same reasoning as claim 4 and 5 above. Therefore, it is rejected under the same rationale.
44. Regarding claim 16, it is rejected under the same reasoning as claim 4 and 5 above. Therefore, it is rejected under the same rationale.
45. Claim 20 is rejected under 35 U.S.C. 103 as being unpatentable over Ferris et al. US 20130304925 A1, as applied in claim 14, in view of Zhao et al. US 10275851 B1.
46. With regard to claim 20, Ferris teaches the server of claim 14 but fails to explicitly teach wherein to assign the data process to the computing server, the at least one processor is further configured to: transit the resource type and the data process to a data process queue, wherein the computing server pulls the data process based on the resource type from the data process queue, and wherein the computing server corresponds to the resource type.
However, in analogous art, Zhao teaches:
wherein to assign the data process to the computing server, the at least one processor is further configured to:
transit the resource type and the data process to a data process queue (Col. 10, lines 38-46, The task queue module 224 comprises functions for implementing and managing a task queue, generating tasks (e.g., execution units) based on service requests received from client systems, and enqueuing the tasks on the task queue. The different tasks that are enqueued in the task queue correspond to different blocks of GPU program code of GPU-accelerated applications executing on the client system 110, which are sent to the GPU server node 200 for remote processing using the GPU resources 230.),
wherein the computing server pulls the data process based on the resource type from the data process queue (Col. 12, lines 5-10, The task queue service 224 processes the incoming GPU service requests by inserting one or more tasks associated with the incoming GPU service requests into a task queue, wherein the queued tasks can be asynchronously pushed to one or more server backend GPU workers 228 for execution at a scheduled time.), and
wherein the computing server corresponds to the resource type (Col. 13, lines 37-48, The GPU service request comprises a request by the GPU API 314 to execute the GPU code and process the associated data using GPU resources 230 of the GPU server node 200. The GPU service request will include relevant information such as, e.g., an identifier of the client system 310 and/or GPU-accelerated application requesting the GPU service, priority level information, quality of service (QoS) information, metadata associated with the GPU code and/or data that is transmitted to the GPU server node 200, and other types of information that may be utilized by the queue-based GPU virtualization and management system 220 to implement the GPU service.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Ferris with the teachings of Zhao wherein to assign the data process to the computing server, the at least one processor is further configured to: transit the resource type and the data process to a data process queue, wherein the computing server pulls the data process based on the resource type from the data process queue, and wherein the computing server corresponds to the resource type. Ferris teaches using queries in order to retrieve relevant user data in order to allocate the appropriate number of resources. Similarly, Zhao teaches of resource allocation based on user request and requirements, but specifically with GPU resources. Nonetheless, Zhao teaches the concept of utilizing a queue to transmit the resource type and data process in order to match the computing server to the resource type. This ensures that tasks are only assigned to servers that are capable of handling them, as discussed in Zhao (Col. 14, lines 17-23, Col. 14, lines 61 – Col. 15, lines 10).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AN-AN N NGUYEN whose telephone number is (571)272-6147. The examiner can normally be reached Monday-Friday 8:00-5:00 ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, 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.
/AN-AN NGOC NGUYEN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195