DETAILED ACTION
This action is responsive to claims filed 06/01/2023.
Claims 1–20 are pending for examination.
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 .
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.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1–6, 8–13, and 15–20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Mohamed Ahmed (US-20180349168-A1), hereinafter “Ahmed.”
Regarding claim 1, Ahmed teaches:
A computer-implemented method for reserving compute instances in cloud computing environments, the method being executed by one or more processors and comprising (Ahmed Fig. 1, Abstract, ¶0038: “The disclosed technology relates to cloud computing and, more specifically, to a cloud computing platform that manages cloud infrastructure to provide autonomous management of containers hosting applications. Based on prediction computations, the disclosed technology can scale up a VM or container, scale down a VM or container, shutdown a VM or container, change the location of a container, open a new container, or close a container”—[wherein the computing platform manages virtual machines (VMs) in a cloud environment and includes one or more processors]):
providing historic compute instance (CI) training data at least partially representative of one or more compute instances executing an application in a cloud computing environment (Ahmed ¶0011–0012, ¶0054: “The disclosed technology includes a computing platform that manages a container running an application or a VM hosting the container. The computing platform can manage the container or the VM based on several factors such as a service level agreement (SLA), usage parameters (e.g., container processor usage, container memory usage, container input/output usage), and a key performance indicator (KPI) of an application running on the container (e.g., latency, error rate). The KPI can also be referred to as a ‘performance indicator’ that includes the performance of a container or an application running on the container” and “training database 255”—[wherein the training database includes historical training data provided to the VMs in the cloud environment]),
the one or more compute instances being provided in a tenant namespace for a tenant, the tenant namespace being provided in a cluster of the cloud computing environment (Ahmed Fig. 2, ¶0041, ¶0045: “The feature extractor 220 is configured to extract features from a cluster or clusters. Features include data that defines the nature of a container in a cluster or other information about the container and application or applications running on the cluster. Features can include image definition attributes, such as name, repository, private image, public image, size, label, OS, base image, or container deployment data, such as open ports details, health endpoint, or environment variables” and “The cluster scanner 225 can scan the cluster for existing namespaces or pods”—[wherein the BRI of tenant is any person, company, software application, compute instance, interacting with the system, and the BRI of tenant namespace is any resource, data, and/or compute instance associated with the tenant]);
training a CI predictor using the historic CI training data (Ahmed Claim 9: “wherein the developer instructions are stored in a training database; and providing the developer instructions to a feed forward neural network (FFNN), wherein the FFNN uses the developer instructions as back propagation to train the FFNN”—[(emphasis added)]);
receiving, from a CI adjuster, a first prediction request (Ahmed Fig. 2, ¶0046, ¶0051: “The resolution adjuster 230 adjusts a time for when the feature extractor, the cluster scanner 225, or the performance data monitor 235 (see below) receive, request, or process data”—[wherein the BRI of CI adjuster is any person, software, code, or instruction that manages or otherwise instructs the CI, and wherein the resolution adjuster adjusts the requests (i.e., facilitating requests to/from)]);
transmitting, in response to the first prediction request, a first prediction generated by the CI predictor based on the first prediction request (Ahmed ¶0020: “Based on the forecast, the computing platform can transmit instructions to a container”—[wherein the system transmits the instructions based on the forecast (i.e., a prediction) in response to the request from the adjuster]); and
instantiating a first set of compute instances within the tenant namespace in response to the first prediction (Ahmed ¶0020, ¶0051–0053: “The computing platform can also shut down a single container, shut down multiple containers, shut down or open a new VM, or shut down or open multiple VMs based on a forecast for the container” and “By communicating with the performance data monitor 235 and the resolution adjuster 230, the forecaster 240 can receive data for running containers and applications to determine repeatable patterns and forecast a performance value for an application or container with a confidence value. The algorithms can output forecasted values for the container such as projected memory, CPU, or I/O values for a time based on the previous period time. The forecaster 240 can use independent a LSTM neural network or FFNN to forecast for different or the same resolutions. The forecaster 240 can communicate with the performance monitor 235 to receive usage parameters and KPI values, and then the forecaster 240 can feed these data points into an LSTM, FFNN, or content neural network. The decision maker 245 determines when and how to adjust a container, application, or VM hosting the container running the application. The decision maker 245 considers the confidence intervals and forecasts from the forecaster 240. Based on these forecast, the decision maker 245 identifies applications, VMs, or containers it can be scale up, scale down, shutdown, or open to keep the application running according to its SLA (e.g., optimize cost)”—[wherein the system opens new VMs based on the forecast]).
Regarding claim 2, Ahmed teaches all the limitations of claim 1.
Ahmed teaches:
wherein the first prediction defines the first set of compute instances and, for each compute instance in the first set of compute instances, assigns a type (Ahmed ¶0043–0044: “The feature extractor 220 can also determine if a container is memory intensive, CPU intensive, or I/O output intensive. Intensive generally means the that a function or resource is more important relative to another resource. For example, a CPU intensive container generally has a requirement that its CPU provide enough resource as compared to its memory or I/O. VMs are generally provided to accommodate intensive demands. For example, a cloud provider provides CPU intensive VMs or memory intensive VMs. The feature extractor 220 can determine whether a container or VM has an intensive requirement. In some implementations, the computing platform modifies a container based on its intensity”—[(emphasis added)]).
Regarding claim 3, Ahmed teaches all the limitations of claim 2.
wherein each type corresponds to a release plan in a set of release plans, each release plan defining a number of processors and a memory size for a respective compute instance (Ahmed ¶0013, ¶0045–0046: “The resolution adjuster 230 adjusts a time for when the feature extractor, the cluster scanner 225, or the performance data monitor 235 (see below) receive, request, or process data. The resolution adjuster 230 can also determine time parameters to read information from containers and change the time parameters to increase or decrease resolution of reading the parameters. The resolution adjuster 230 can cause use different resolutions or frequencies such as 30 seconds or less, 1 minute, 5 minutes, 30 minutes, 1 hour, 24 hours, 1 days, 1.5 days, 2 days, or 1 week. The different time granularity can also be referred to as “frequency”, where an initial frequency can be a first frequency used for collecting data (e.g., 1 second or 1 minute). The initial frequency can also be used to determine trends at other frequencies (e.g., 1-minute data points used to determine 2-minute data points or 12-hour data points by averaging”—[wherein the resolution adjuster determines time parameters for each container including CPU, memory, and I/O needs]).
Regarding claim 4, Ahmed teaches all the limitations of claim 1.
wherein the CI predictor is specific to the tenant and the application (Ahmed ¶0028, ¶0034–0035: “Service Level Agreements (SLAs) specify the expected performance characteristics between a service provider and a client. For example, a SLA can specify the cost and parameter for a VM and the expected performance of that VM. A SLA can include various resource requirements and costs for a container, computer, or application. The SLA can include service-level parameters that are requirements or described performance parameters for a VM or container. For example, a service-level parameter can be many hours an application can be down per month or a minimum number of errors detected at container for satisfactory performance” and “The application 113 is a software run by the container 112. The software can be related to providing a service such as email or software for developing code. In some implementations, the application 113 is divided into services, where each service runs a process and manages its own database. A service can generate alerts, log data, support user interfaces (UIs), handle user identification or authentication, and perform tasks related to using software. The services can relate to computing software, software development software, social media, and other types of software … The applications 113 can be located on a single container 112 or multiple containers 112. The application 113 can serve a business function such as: cloud computing operations, photo or video editing, user management, user roles, e-commerce cart, search engine, or social media logins. In some applications, the applications 113 can have different services where each service is written in different programming languages or uses different databases”—[wherein each VM may be specific to a client and application for that client]).
Regarding claim 5, Ahmed teaches all the limitations of claim 1.
wherein the first set of compute instances is instantiated for a time period (Ahmed ¶0013, ¶0045–0046: “The resolution adjuster 230 adjusts a time for when the feature extractor, the cluster scanner 225, or the performance data monitor 235 (see below) receive, request, or process data. The resolution adjuster 230 can also determine time parameters to read information from containers and change the time parameters to increase or decrease resolution of reading the parameters. The resolution adjuster 230 can cause use different resolutions or frequencies such as 30 seconds or less, 1 minute, 5 minutes, 30 minutes, 1 hour, 24 hours, 1 days, 1.5 days, 2 days, or 1 week. The different time granularity can also be referred to as “frequency”, where an initial frequency can be a first frequency used for collecting data (e.g., 1 second or 1 minute). The initial frequency can also be used to determine trends at other frequencies (e.g., 1-minute data points used to determine 2-minute data points or 12-hour data points by averaging”—[(emphasis added)]).
Regarding claim 6, Ahmed in view of Sharma teaches all the limitations of claim 1.
receiving, from the CI adjuster, a second prediction request (¶0046–0047: “The resolution adjuster 230 adjusts a time for when the feature extractor, the cluster scanner 225, or the performance data monitor 235 (see below) receive, request, or process data. The resolution adjuster 230 can also determine time parameters to read information from containers and change the time parameters to increase or decrease resolution of reading the parameters. The resolution adjuster 230 can cause use different resolutions or frequencies such as 30 seconds or less, 1 minute, 5 minutes, 30 minutes, 1 hour, 24 hours, 1 days, 1.5 days, 2 days, or 1 week. The different time granularity can also be referred to as “frequency”, where an initial frequency can be a first frequency used for collecting data (e.g., 1 second or 1 minute). The initial frequency can also be used to determine trends at other frequencies (e.g., 1-minute data points used to determine 2-minute data points or 12-hour data points by averaging. … The resolution adjuster can average or down sample for all frequencies starting (e.g., from 1.5 minutes to days or even weeks). In some implementations, the initial frequency is a first frequency and a second frequency is generated by averaging points from the first frequency. The second frequency can be longer than the first frequency (e.g., 5 minutes for second frequency versus 1 minute for first frequency)”—[wherein the resolution adjuster adjusts the requests (i.e., facilitating requests to/from) for more than one container (i.e., a second)]);
transmitting, in response to the second prediction request, a second prediction generated by the CI predictor based on the second prediction request (Ahmed Fig. 2, ¶0046–0047, ¶0051–0053: “The resolution adjuster 230 adjusts a time for when the feature extractor, the cluster scanner 225, or the performance data monitor 235 (see below) receive, request, or process data. The resolution adjuster 230 can also determine time parameters to read information from containers and change the time parameters to increase or decrease resolution of reading the parameters. The resolution adjuster 230 can cause use different resolutions or frequencies such as 30 seconds or less, 1 minute, 5 minutes, 30 minutes, 1 hour, 24 hours, 1 days, 1.5 days, 2 days, or 1 week. The different time granularity can also be referred to as “frequency”, where an initial frequency can be a first frequency used for collecting data (e.g., 1 second or 1 minute). The initial frequency can also be used to determine trends at other frequencies (e.g., 1-minute data points used to determine 2-minute data points or 12-hour data points by averaging. … The resolution adjuster can average or down sample for all frequencies starting (e.g., from 1.5 minutes to days or even weeks). In some implementations, the initial frequency is a first frequency and a second frequency is generated by averaging points from the first frequency. The second frequency can be longer than the first frequency (e.g., 5 minutes for second frequency versus 1 minute for first frequency)”—[wherein the system transmits the instructions based on the forecast (i.e., a prediction) in response to the request from the adjuster for more than one container (i.e., a second)]); and
instantiating a second set of compute instances within the tenant namespace in response to the second prediction, the second set of compute instance being instantiated for a time period after the first set of compute instances (Ahmed Fig. 2, Ahmed ¶0020, ¶0022, ¶0051–0053: “The computing platform can also shut down a single container, shut down multiple containers, shut down or open a new VM, or shut down or open multiple VMs based on a forecast for the container” and “By communicating with the performance data monitor 235 and the resolution adjuster 230, the forecaster 240 can receive data for running containers and applications to determine repeatable patterns and forecast a performance value for an application or container with a confidence value. The algorithms can output forecasted values for the container such as projected memory, CPU, or I/O values for a time based on the previous period time. The forecaster 240 can use independent a LSTM neural network or FFNN to forecast for different or the same resolutions. The forecaster 240 can communicate with the performance monitor 235 to receive usage parameters and KPI values, and then the forecaster 240 can feed these data points into an LSTM, FFNN, or content neural network. The decision maker 245 determines when and how to adjust a container, application, or VM hosting the container running the application. The decision maker 245 considers the confidence intervals and forecasts from the forecaster 240. Based on these forecast, the decision maker 245 identifies applications, VMs, or containers it can be scale up, scale down, shutdown, or open to keep the application running according to its SLA (e.g., optimize cost)”—[wherein the system opens new VMs based on the forecast and continually does so over time (i.e., after the first one)]).
Regarding claim 8, Ahmed teaches:
A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations for reserving compute instances in cloud computing environments, the operations comprising (Ahmed Fig. 2, ¶0073–0076: “Although the machine-readable medium or machine-readable storage medium is shown in an exemplary implementation to be a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple medium (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” and “machine-readable storage medium” shall also be taken to include any medium that can store, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the presently disclosed technology. A machine-readable storage medium can also be referred to as a computer-readable medium, which generally means a medium that can be read by a computer or computers. Machine-readable storage medium can also include a non-transitory computer readable medium without a propagation signal. The non-transitory computer readable medium can store instructions that can be executed by a processor”).
Regarding claim 8, although varying in scope, the remaining limitations of claim 8 are substantially the same as the limitations of claim 1. Thus, the remaining limitation of claim 8 are rejected using the same reasoning and analysis as claim 1 above.
Regarding claim 15, Ahmed teaches:
A system, comprising: a computing device (Ahmed Fig. 2, ¶0073–0076: “Discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices”); and
a computer-readable storage device coupled to the computing device and having instructions stored thereon which, when executed by the computing device, cause the computing device to perform operations for reserving compute instances in cloud computing environments, the operations comprising (Ahmed Fig. 2, ¶0073–0076: “Although the machine-readable medium or machine-readable storage medium is shown in an exemplary implementation to be a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple medium (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” and “machine-readable storage medium” shall also be taken to include any medium that can store, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the presently disclosed technology. A machine-readable storage medium can also be referred to as a computer-readable medium, which generally means a medium that can be read by a computer or computers. Machine-readable storage medium can also include a non-transitory computer readable medium without a propagation signal. The non-transitory computer readable medium can store instructions that can be executed by a processor).
Regarding claim 15, although varying in scope, the remaining limitations of claim 15 are substantially the same as the limitations of claim 1. Thus, the remaining limitation of claim 15 are rejected using the same reasoning and analysis as claim 1 above.
Regarding claims 9–13, although varying in scope, the limitations of claims 9–13 are substantially the same as the limitations of claims 2–6, respectively. Thus, claims 9–13 are rejected using the same reasoning and analysis as claims 2–6 above, respectively.
Regarding claims 16–20, although varying in scope, the limitations of claims 16–20 are substantially the same as the limitations of claims 2–6, respectively. Thus, claims 16–20 are rejected using the same reasoning and analysis as claims 2–6 above, respectively.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Ahmed (US-20180349168-A1) as applied in the § 102 rejections above, and further in view of Sharma et al., (US-20200327371-A1), hereinafter “Sharma”.
Regarding claim 7, Ahmed teaches all the limitations of claim 1.
Ahmed does not appear to explicitly teach:
wherein the CI predictor is provided as a linear regression model.
However, Sharma teaches:
wherein the CI predictor is provided as a linear regression model (Sharma ¶0175: “While various standard ML models may be incorporated as part of the machine learning platform 804, it will be appreciated that the total number of different models that may be accommodated on a particular instance of an edge platform may be limited by storage constraints. It should also be appreciated some models may not be particularly suitable for use at the edge due to their complexity, the limited edge compute resources available, and the desire that the models be capable of analyzing continuous stream data and producing predictions or inferences based thereon substantially in real-time. In the presently preferred example embodiment, the standard models include at least classification models (decision tree classification, logistic regression classification, Gaussian and multinomial Naive Bayes classification, nearest neighbor (KNN) classification, neural network classification (CNN, RNN), and support vector machines classification), regression models (decision tree regression, generalized linear models including ARIMA, linear, lasso, elastic net, and ridge regression), nearest neighbor (KNN) regression, neural network regression, and SVM regression), clustering models (mean-shift, K-means), and anomaly detection models (isolation forest, one-class SVM)”—[(emphasis added)]).
The methods of Ahmed, the teachings of Sharma, and the instant application are analogous art because they pertain to machine learning techniques within cloud computing environments.
It would be obvious to a person of ordinary skill in the art before the effective filing date of the invention to modify the methods of Ahmed with the teachings of Sharma to provide instantiated resources that include regression models to compute predictions. One would be motivated to do so to provide models that accommodate the complexity and available resources while processing predictions (Sharma ¶0175).
Regarding claim 14, although varying in scope, the remaining limitations of claim 14 are substantially the same as the limitations of claim 7. Thus, the remaining limitation of claim 14 are rejected using the same reasoning and analysis as claim 7 above.
Prior Art of Record
The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure.
Tirapu Azpiroz et al., (“VALIDATING TEST RESULTS USING A BLOCKCHAIN NETWORK”) discloses systems and methods for managing computing resources in a cloud environment “Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited customer-specific application configuration settings. [0062] Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations. [0063] Infrastructure as a Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).” Tirapu Azpiroz ¶0060.
Musso et al., (“METHODS, SYSTEMS, AND FRAMEWORKS FOR FEDERATED LEARNING WHILE ENSURING BI DIRECTIONAL DATA SECURITY”) discloses systems and methods for making predictions using machine learning techniques in a cloud environment “Feature selection is also a step in a data analysis method, involving selecting certain variables which directly impact the outcome of a model (for example diagnosis of a disease). However, in large dataset(s), with numerous variables, it may be a difficult procedure to execute. Integration of datasets leads to a larger set of variables may increase the reliability of predictions of a model. Optimizing the analysis of biomedical phenomenon (e.g., diagnostics, therapeutics, drug discovery, classifying different biological components), may require the use of different datasets along with distinct types of preprocessing and feature selection strategies so that the successful integration and analysis of the datasets may involve examining many different variables. Cloud-based as well as multi-processor equipped hardware allows for the execution of an algorithm in parallel over different Central Processing Units (CPUs) and/or Graphical Processing Units (GPUs) as well as Tensor Processing Units (developed by Google), Programmable Gate Arrays (PGAs), Digital Signal Processors (DSPs) and other processing technologies, leading to a higher computational capacity. Despite these innovations in computation, running different data pre-processing routings to achieve the best results often requires substantial computing resources which can consume substantial time and/or money when fee-based computation is used (e.g., with many fee-based or compute-usage based, cloud-based computing resources).” Musso ¶0004.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NICHOLAS SHINE whose telephone number is (571)272-2512. The examiner can normally be reached M-F, 9a-5p 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, David Yi can be reached on (571) 270-7519. 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.
/N.B.S./Examiner, Art Unit 2126
/DAVID YI/Supervisory Patent Examiner, Art Unit 2126