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 .
Examiner Notes
Examiner cites particular columns and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
The examiner encourages Applicant to submit an authorization to communicate with the examiner via the Internet by making the following statement (from MPEP 502.03):
“Recognizing that Internet communications are not secure, I hereby authorize the USPTO to communicate with the undersigned and practitioners in accordance with 37 CFR 1.33 and 37 CFR 1.34 concerning any subject matter of this application by video conferencing, instant messaging, or electronic mail. I understand that a copy of these communications will be made of record in the application file.”
Please note that the above statement can only be submitted via Central Fax, Regular postal mail, or EFS Web (PTO/SB/439).
Response to Arguments
Applicant’s arguments filed on March 17, 2026 have been fully considered but are not persuasive. Applicant’s arguments are related to newly amended claim language and are addressed in the rejections below.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 21-40 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1, 5, 6, and 15 of US Patent. No. 12008390 in view of the combination of Guenther et al. (US 10037424) in view of Gardner et al. (US 20210092015) and Theunissen et al. (US 10628228).
Although the conflicting claims are not identical, they are not patentably distinct from each other because both applications comprise substantially the same elements and cover the same subject matter. As can be seen from the table below, taking claim 1 as exemplary, both claims have similar features.
Instant Application: 18662892
US Patent No. 12008390
21. (New) A system comprising:
one or more processors and corresponding memory, on a network, configured to implement a computation service configured to:
receive an indication of an execution environment, into which code can be written, installed, or executed via an application programming interface (API) to the computation service;
allocate a compute instance for the execution environment;
instantiate, on the allocated compute instance, a first version of the execution environment from storage;
based on detection of one or more changes in the instantiated execution environment caused by one or more interactions with the instantiated execution environment,
generate a new version of the execution environment, comprising:
an environment definition, specifying one or more environment layers corresponding to the new version of the execution environment, to build the new version of the execution environment including the one or more changes, , or an executable instantiation that represents the built new version of the execution environment;
and
store the new version of the execution environment to storage,
receive, via the API, a request for a different compute instance type for the execution environment instantiated on the compute instance;
instantiate, on the allocated different compute instance and in accordance with the request, the new version of the execution environment from storage.
1. A system, comprising:
one or more processors and corresponding memory, on a network, configured to implement a computation service configured to:
receive an indication of an execution environment from a user interface via an application programming interface (API) to the computation service; and
in response to the indication:
allocate a compute instance for the environment on a host device, comprising one or more other processors and corresponding memory, on the network; and
instantiate a host agent and a web server on the compute instance, wherein the one or more other processors and corresponding memory is configured to, via the host agent:
instantiate the execution environment on the compute instance, wherein the instantiated execution environment is for an environment interface displayed by the user interface, wherein the execution environment comprises a container as a base layer and one or more additional layers, wherein the environment interface is configured to interact with the execution environment through the web server on the compute instance to execute code within the container; and
instantiate a monitoring agent, distinct from the host agent, on the compute instance, wherein the one or more other processors and corresponding memory is configured to, via the monitoring agent monitor the execution environment on the compute instance to detect one or more changes in the execution environment caused by the environment interface interactions with the execution environment;
wherein the one or more processors and corresponding memory are configured to, based on an indication of the one or more changes in the execution environment;
generate a new environment version that includes the one or more changes; and
store the new environment version that includes the one or more detected changes in the execution environment caused by the interactions with the execution environment; and
wherein the one or more processors and corresponding memory are configured to instantiate a new environment from the stored new environment version.
32. The method of claim 28, further comprising:
providing a user interface configured to receive user input; and
receiving the indication of the execution environment and the request for a different compute instance type from the user interface via the API.
5. The system as recited in claim 1, wherein the network provides two or more different types of compute instances, and wherein the computation service is further configured to:
receive input from the user interface requesting another type of compute instance for the environment via the API to the computation service; and
in response to the request, deallocate the previously allocated compute instance and allocate a new compute instance of the other type for the environment on a host device on the network; wherein a host agent on the new compute instance is configured to instantiate an execution environment for the environment on the new compute instance according to a previously generated environment version.
28. A method, comprising:
performing, by a computation service implemented by one or more devices on a network, the one or more devices comprising respective one or more processors and memory:
receiving an indication of an execution environment via an application programming interface (API) to the computation service;
allocating a compute instance for the execution environment; instantiating, on the allocated compute instance, a first version of the execution environment from storage;
based on detection of one or more changes in the instantiated execution environment caused by one or more interactions with the instantiated execution environment,
generating a new version of the execution environment comprising an environment definition, specifying one or more environment layers corresponding to the new version of the execution environment, to build the new version of the execution environment including the one or more changes, or an executable instantiation that represents the built new version of the execution environment, and
storing the new version comprising the environment definition including the one or more changes, to storage,
receiving, via the API, a request for a different compute instance type for the execution environment instantiated on the compute instance;
instantiating, on the allocated different compute instance and in accordance with the request, the new version of the execution environment from storage.
6. A method, comprising:
performing, by a computation service implemented by one or more devices on a network:
responsive to receipt of an indication of an execution environment from a user interface via an application programming interface (API) to the computation service:
allocating a compute instance on a host device on the network;
instantiating a host agent and a web server on the compute instance;
instantiating the execution environment on the compute instance, wherein the instantiated execution environment is for an environment interface displayed by a user interface, wherein the execution environment comprises a container as a base layer and one or more additional layers, and wherein the environment interface is configured to interact with the execution environment through the web server on the compute instance to execute code within the container; and
instantiating a monitoring agent, distinct from the host agent, on the compute instance;
monitoring, by the monitoring agent, interactions with the execution environment received over the network from an interface to the computation service;
detecting, by the monitoring agent, one or more changes in the execution environment caused by the interactions with the execution environment over the network from the interface to the computation service;
generating, in response to an indication of the one or more changes in the execution environment, a new environment version for the execution environment that includes the one or more detected changes in the execution environment caused by the interactions with the execution environment;
storing the new environment version that includes the one or more detected changes in the execution environment caused by the interactions with the execution environment; and
instantiating a new environment from the stored new environment version.
35. One or more non-transitory computer-readable media, storing program instructions executable on or across one or more processors to:
responsive to receipt of an indication of an execution environment via an application programming interface (API) to a computation service, allocate a compute instance for the execution environment;
instantiate, on the allocated compute instance, a first version of the execution environment from storage;
based on detection of one or more changes in the instantiated execution environment caused by one or more interactions with the instantiated execution environment,
generate a new version of the execution environment comprising an environment definition, specifying one or more environment layers corresponding to the new version of the execution environment, to build the new version of the execution environment including the one or more changes, or an executable instantiation that represents the built new version of the execution environment, and
store the new version of the execution environment, comprising the environment definition including the one or more changes, to storage; and
instantiate, on the allocated different compute instance and in accordance with the request, the new version of the execution environment from storage.
15. One or more non-transitory computer-readable storage media storing program instructions that when executed on or across one or more processors cause the one or more processors to:
responsive to receipt of an indication of an execution environment from a user interface via an application programming interface (API) to a computation service:
allocate a compute instance on a host device on a network to an execution environment for a computation service; and
instantiate a host agent and a web server on the compute instance;
build the execution environment on the compute instance according to an environment version for the execution environment stored on the network, wherein the built execution environment is for an environment interface displayed by a user interface, wherein the execution environment comprises a container as a base layer and one or more additional layers, and wherein the environment interface is configured to interact with the execution environment through the web server on the compute instance to execute code within the container;
instantiate a monitoring agent, distinct from the host agent, on the compute instance;
monitor, by the monitoring agent, interactions with the execution environment received over the network from an interface to the computation service; and
detect, by the monitoring agent, one or more changes to the execution environment caused by the interactions with the execution environment over the network from the interface to the computation service;
generate, in response to said detect the one or more changes in the execution environment, a new environment version for the execution environment that includes the one or more detected changes in the execution environment caused by the interactions with the execution environment;
store the new environment version that includes the one or more detected changes in the execution environment caused by the interactions with the execution environment; and
instantiate a new environment from the stored new environment version.
Although Patent No.12008390 does not specifically teach the steps of: 1) allocate a different compute instance of the different compute instance type for the execution environment; and 2) receive, via the API, a request for a different compute instance type for the execution environment instantiated on the compute instance, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include these steps in light of Guenther et al. (US 10037424) in view of Gardner et al. (US 20210092015), Masis et al. (US 20210081304), Hamer et al. (US 20170171022), and Theunissen et al. (US 10628228) as discussed in the rejections below.
Guenther teaches a method of virtual machine provisioning and maintenance (Abstract], A pool of virtual environments, such as virtual machine instances and containers, can be maintained by an intermediary service, where the virtual environments can execute a specified application or service. When a request is received from a client for a connection to a resource, the intermediary service can allocate one of the virtual environments for the client and enable the client and virtual environment to communicate as if the virtual environment is executing on dedicated hardware; and Column 4, Lines 15-20, host manager can also perform and/or mange the installation of software patches and upgrades, as well as updates to configuration (e.g., specific virtual machine images) or firmware, etc. A host manger also can collect relevant metrics, such as may relate to CPU, memory, and I/O usage). Gardner teaches a method of managing virtual environments including storing and applying different versions of said environments. ([0003], The management system can monitor and control computing environments at various different levels, for example, for individual computing environments, for groups of multiple computing environments across an organization, or across computing environments of different organizations. The management system can manage multiple computing environments by, for example, spinning-up, tearing-down, cloning, upgrading, validating, and monitoring the computing environments. The ability of the management system to obtain, store, and alter configuration settings of different computing environments facilitates the transfer or replication of settings from one computing environment to another). Masis teaches a method of provisioning based on templates. (Abstract, example method also includes generating, based on the settings file and the template, a set of environment configurations for the system. The example method further includes executing, by the system, the application in each environment configuration of the set of environment configurations; and [0044], The test module 122 may obtain the template 132 specifying the virtual machine 306 and launch the virtual machine 306). Hamer teaches a method of provisioning, monitoring, and adjusting computing environments including deallocating computing environments. ([0015], provides a mechanism for the user to easily update their environments at a time of their choosing, and after specific testing has taken place ; [0032], Each individual package can include an executable, a binary image, a library, configuration files, or any type of file or data used to create an operating environment. In the context of the present technology, each OS version illustrated in FIG. 3 is provided as a binary image. As will be well understood by those skilled in the art, images can be written directly into a processing environment to allow the rapid establishment of an operating system in the environment. Application packages may comprise executables, configuration files, and libraries along with configuration information, to allow the application to run on top of an operating system; and [0051], The update request will include a specification of the environment or environments from the environment library 150 with which the servers should be created). Theunissen also teaches a method of provisioning, monitoring, and adjusting computing environments including user specified environments. (Abstract, Systems for processing requests to use virtual computing resources in communicatively isolated computing environments; Column 22, Lines 17-22, the system may determine that the request identifies a first computing environment as the target computing environment in which the allocation of computing resources is desired. In one embodiments, the system may read an identifier for the target computing environment from the request; and Column 23, Lines 21-23, the system may assign the target computing environment and the high-use computing environment(s) to the third tier, and at step 446 the system may assign all other computing environments to the second tier). It would have been obvious to one having ordinary skill in the art before the effective filing date of claimed invention to apply the combination of Guenther, Gardner, Masis, Hamer, and Theunissen to the instant claims.
Dependent claims 22-27, 29-31, and 36-40 are rejected due to their dependency on independent claims 21, 38, and 35. Dependent claims 22-27, 29-31, and 36-40 are also met by the combination of Guenther, Gardner, and Theunissen as discussed in the rejections below.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
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 21-33 and 35-40 are rejected under 35 U.S.C. 103 as being unpatentable over Guenther et al. (US 10037424) in view of Gardner et al. (US 20210092015), Masis et al. (US 20210081304) and Hamer et al. (US 20170171022).
As per claim 21, Guenther teaches the invention substantially as claimed including a system, comprising:
one or more processors and corresponding memory (Column 12, Lines 17-19, the device includes a processor 502 for executing instructions that can be stored in a memory device or element 504), on a network (Column 12, Lines 29-32, device can include one or more network interface components 508 configured to enable the device to transmit and receive information over a network), configured to
implement a computation service (Column 13, Lines 7-9, Various aspects can be implemented as part of at least one service or Web service, such as may be part of a service-oriented architecture) configured to:
receive an indication of an execution environment, into which code can be written, installed or executed (Column 2, Lines 62-63, a Web service call might be received that includes a request to launch a virtual environment; EN: Guenther’s virtual environment is an environment into which code can be executed: Column 1, Lines 59-62, The pool of virtual environments can include environments such as virtual machine instances and containers, and can be configured to execute at least one specified application or service), via an application programming interface (API) to the computation service (Column 2, Lines 53-56, Web services layer also can include a set of APIs 132 (or other such interfaces) for receiving Web services calls or requests from across the at least one network 106);
allocate a compute instance for the execution environment (Column 10, Lines 15-16, In response to the request, a virtual environment can be allocated 306 for the client); [and]
instantiate, on the allocated compute instance, a first version of the execution environment from storage (Column 1, Lines 62-67, When a request is received from a client for a connection to a resource, the intermediary service can allocate one of the virtual environments for the client and enable the client and virtual environment to communicate as if the virtual environment is executing on dedicated hardware).
Guenther fails to specifically teach, based on detection of one or more changes in the instantiated execution environment caused by one or more interactions with the instantiated execution environment, generate a new version of the execution environment comprising an environment definition , specifying one or more environment layers corresponding to the new version of the execution environment, to build the new version of the execution environment including the one or more changes, or an executable instantiation that represents the built new version of the execution environment; and store the new version of the execution environment, to storage; receive, via the API, a request for a different compute instance type for the execution environment instantiated on the compute instance; allocate a different compute instance of the different compute instance type for the execution environment; and instantiate, on the allocated different compute instance and in accordance with the request, the new version of the execution environment from storage.
However, Gardner teaches, based on detection of one or more changes in the instantiated execution environment caused by one or more interactions with the instantiated execution environment ([0005], The management system monitors actions at the managed environments, stores data indicating configurations and detected actions in a repository, and can initiate various actions at the environments, such as configuration changes;[0008], The management system can store historical information about modifications to settings and configurations, for example, by logging configuration changes for each individual computing environment. The management system can track configuration changes and store versions of configuration information over time),
generate a new version of the execution environment ([0021], storing, in the repository, configuration information for different versions of settings that were respectively active at a particular computing environment at different times; and [0066], as a result of changes made by the user 124, the server environment 122 has configuration C1) comprising:
an environment definition...to build the new version of the execution environment including the one or more changes ([0067] At stage (C), the management system 110 receives data indicating the change to the configuration of the first computing environment, e.g., data indicating the configuration C1 settings from the first server 120; and [0068], the management system 110 stores the configuration settings in its data storage 115, illustrated as configuration records 114. The configuration records 114 include time-stamped configurations of the computing environments 122, 132, and 142), and
store the new version of the execution environment to storage ([0068], the management system 110 stores the configuration settings in its data storage 115, illustrated as configuration records 114. The configuration records 114 include time-stamped configurations of the computing environments 122, 132, and 142);
receive, via the API ([0003], The management system can provide access to the management functionality through an interface, such as a user interface or application programming interface (API), allowing remote management), a request for a different compute instance type for the execution environment instantiated on the compute instance ([0004], the management system can enable an administrator to specify a configuration and remotely apply the configuration to any or all of multiple computing environments; and [0021], providing an interface to apply, to the particular computing environment or another computing environment, any of the different versions of settings that were respectively active at the particular environment at different times);
allocate a different compute instance of the different compute instance type for the execution environment ([0021], providing an interface to apply, to the particular computing environment or another computing environment, any of the different versions of settings that were respectively active at the particular environment at different times); and
instantiate, on the allocated different compute instance and in accordance with the request, the new version of the execution environment from storage ([0018], performing the management task causing the selected software module to be loaded and run by the management system or by the particular computing environment; and [0023], storing, by the management system, environment data for deploying computer environments, the environment data including software images or installers for creating new computer environments in at least one of local computing hardware, remote computing hardware, virtual machines, containers, or cloud computing platforms; and creating, by the management system, a new computer environment based on the new computer environment being created such that the new computing environment is configured to automatically register itself with the management system to be managed by the management system).
Guenther and Gardner are analogous because they are each related to managing computing environments. Guenther teaches a method of virtual machine provisioning and maintenance (Abstract], A pool of virtual environments, such as virtual machine instances and containers, can be maintained by an intermediary service, where the virtual environments can execute a specified application or service. When a request is received from a client for a connection to a resource, the intermediary service can allocate one of the virtual environments for the client and enable the client and virtual environment to communicate as if the virtual environment is executing on dedicated hardware; and Column 4, Lines 15-20, host manager can also perform and/or mange the installation of software patches and upgrades, as well as updates to configuration (e.g., specific virtual machine images) or firmware, etc. A host manger also can collect relevant metrics, such as may relate to CPU, memory, and I/O usage). Gardner teaches a method of managing virtual environments including storing and applying different versions of said environments. ([0003], The management system can monitor and control computing environments at various different levels, for example, for individual computing environments, for groups of multiple computing environments across an organization, or across computing environments of different organizations. The management system can manage multiple computing environments by, for example, spinning-up, tearing-down, cloning, upgrading, validating, and monitoring the computing environments. The ability of the management system to obtain, store, and alter configuration settings of different computing environments facilitates the transfer or replication of settings from one computing environment to another). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, Guenther’s “services” would be modified with the mechanisms for applying configuration changes taught by Gardner resulting in a system that is able to provision and manage changing virtual environments. Therefore, it would have been obvious to combine the teachings of Guenther and Gardner.
The combination of Guenther-Gardner fails to specifically teach, generate a new version of the execution environment, comprising: an environment definition, specifying one or more environment layers corresponding to the new version of the execution environment, ....or an executable instantiation that represents the built new version of the execution environment.
However, Masis teaches, generate a new version of the execution environment, comprising: an environment definition, specifying one or more environment layers corresponding to the new version of the execution environment ([0015], Components of a layer that are beneath the software layer may be included in an environment configuration in which the application may execute).
The combination of Guenther-Gardner and Masis are analogous because they are each related to managing computing environments. Guenther teaches a method of virtual machine provisioning and maintenance. Gardner teaches a method of managing virtual environments including storing and applying different versions of said environments. Masis teaches a method of provisioning based on templates. (Abstract, example method also includes generating, based on the settings file and the template, a set of environment configurations for the system. The example method further includes executing, by the system, the application in each environment configuration of the set of environment configurations ; and [0044], The test module 122 may obtain the template 132 specifying the virtual machine 306 and launch the virtual machine 306). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the services of the combination of Guenther-Gardner would be modified with the mechanisms for deploying a new environment, the environment containing various layers, as taught by Masis resulting in a system that is able to provision and manage virtual environments. Therefore, it would have been obvious to combine the teachings of the combination of Guenther-Gardner and Masis.
The combination of Guenther-Gardner-Masis fails to specifically teach, generate a new version of the execution environment, comprising: ...an executable instantiation that represents the built new version of the execution environment.
However, Hammer teaches, generate a new version of the execution environment, comprising: ...an executable instantiation that represents the built new version of the execution environment ([0032], Each individual package can include an executable, a binary image, a library, configuration files, or any type of file or data used to create an operating environment. In the context of the present technology, each OS version illustrated in FIG. 3 is provided as a binary image. As will be well understood by those skilled in the art, images can be written directly into a processing environment to allow the rapid establishment of an operating system in the environment. Application packages may comprise executables, configuration files, and libraries along with configuration information, to allow the application to run on top of an operating system).
The combination of Guenther-Gardner-Masis and Hamer are analogous because they are each related to managing computing environments. Guenther teaches a method of virtual machine provisioning and maintenance. Gardner teaches a method of managing virtual environments including storing and applying different versions of said environments. Masis teaches a method of provisioning based on templates. Hamer teaches a method of provisioning, monitoring, and adjusting computing environments including deallocating computing environments. ([0015], provides a mechanism for the user to easily update their environments at a time of their choosing, and after specific testing has taken place ; [0032], Each individual package can include an executable, a binary image, a library, configuration files, or any type of file or data used to create an operating environment. In the context of the present technology, each OS version illustrated in FIG. 3 is provided as a binary image. As will be well understood by those skilled in the art, images can be written directly into a processing environment to allow the rapid establishment of an operating system in the environment. Application packages may comprise executables, configuration files, and libraries along with configuration information, to allow the application to run on top of an operating system; and [0051], The update request will include a specification of the environment or environments from the environment library 150 with which the servers should be created). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the services combination of Guenther-Gardner-Masis would be modified with the mechanisms for applying configuration changes taught by Hamer resulting in a system that is able to provision and manage virtual environments including deallocation. Therefore, it would have been obvious to combine the teachings of the combination of Guenther-Gardner-Masis and Hamer.
As per claim 22, Gardner teaches, wherein said receive an indication of an execution environment via an application programming interface (API) to the computation service comprises receive an indication of user activation of the execution environment from a web application interface ([0059], a user may use the interface to the management system 110 to manually initiate the creation of the new environment 122; and [0060], When the first computing environment 122 has initialized and becomes active, the first computing environment 122 initiates communication over the network 108 with registration functionality system of a management system 110. The first computing environment 122 identifies the management system 110, and registers itself with the management system 110).
As per claim 23, Gardner teaches, wherein:
the computation service is configured to access, responsive to the indication of user activation of the execution environment ([0038], A user can log in to the management system 110, and once the user has proven his or her identity, the authentication server can check the user's permissions for the environments. The authentication server can also use the stored trust relationships to authenticate the user to the different computing environments managed by the management system 110 as needed; and [0039], The management system 110 is configured to receive information about the configuration of and actions taken at the computing environments 122, 132, 142. The management system 110 can receive this information on an ongoing basis. For example, the computing environments 122, 132, 142 can be configured to send event messages when certain types of configuration changes or other actions occur), configuration information associated with the user that activated the execution environment ([0009], obtaining, by the management system, configuration information for each of multiple computing environment; [0010], the obtained configuration information indicates settings, users, or applications of the multiple computing environments; and [0038], The authentication server store various trust relationships and mappings between different credentials, allowing the authentication server to determine which environments a user has authorization to access. A user can log in to the management system 110, and once the user has proven his or her identity, the authentication server can check the user's permissions for the environments. The authentication server can also use the stored trust relationships to authenticate the user to the different computing environments managed by the management system 110 as needed);
said allocate a compute instance for the execution environment is performed in accordance with the configuration information associated with the user ([0038], The authentication server store various trust relationships and mappings between different credentials, allowing the authentication server to determine which environments a user has authorization to access. A user can log in to the management system 110, and once the user has proven his or her identity, the authentication server can check the user's permissions for the environments. The authentication server can also use the stored trust relationships to authenticate the user to the different computing environments managed by the management system 110 as needed); and
said allocate a different compute instance is performed in accordance with the configuration information associated with the user ([0038], The authentication server store various trust relationships and mappings between different credentials, allowing the authentication server to determine which environments a user has authorization to access. A user can log in to the management system 110, and once the user has proven his or her identity, the authentication server can check the user's permissions for the environments. The authentication server can also use the stored trust relationships to authenticate the user to the different computing environments managed by the management system 110 as needed).
As per claim 24, Hamer teaches, wherein the computation service is configured to:
responsive to the request for a different compute instance type:
deallocate the compute instance([0084], a subset of the user's production environment cluster servers is selected to be removed from service. At 825, the system manager 170A is contacted and instructed to prepare specific servers for the environment update. The system manager 170A removes and creates servers in accordance with the discussion above at 720); and
update the configuration information associated with the user according to the deallocation ([0084], At 820, a subset of the user's production environment cluster servers is selected to be removed from service. At 825, the system manager 170A is contacted and instructed to prepare specific servers for the environment update. The system manager 170A removes and creates servers in accordance with the discussion above at 720; and [0055] Once the new installation location is ready at 827, the subset of production servers available for new environment installation are rebuilt at 830 with a new operating environment as defined in the update request. Rebuilding at 830 is performed by contacting the system manager 170A and instructing the server manager to install the specified environment).
As per claim 25, Gardner teaches, wherein the computation service is configured to:
provide a user interface configured to receive user input ([0011], providing the interface includes providing application data, for presentation at a client device, for a user interface of an application to remotely configure each individual computing environment of the multiple computing environments through communication with the management system over a computer network; and [0058], The management system 110 provides one or more interfaces to send information about the monitored computing environments as well as receive input specifying changes to make to the configurations. The interface can be provided as an application, dashboard, web page, web application, API, etc.); and
receive the indication of an execution environment and the request for a different compute instance type from the user interface ([0019], the method includes providing an interface enabling a user to define management tasks and remotely initiate management tasks for individual computing environments, the interface providing functionality to combine a series of management tasks into a workflow and to combine, transfer, or share settings among different computer environments; [0020], receiving data indicating a request to replicate at least a portion of a configuration of a first computing environment at a second computing environment; accessing, from the repository, configuration parameters of the first computing environment; and transferring the configuration parameters accessed from the repository to the second computing environment over a network; [0021], providing an interface to apply, to the particular computing environment or another computing environment, any of the different versions of settings that were respectively active at the particular environment at different times) via the API ([0058], The management system 110 provides one or more interfaces to send information about the monitored computing environments as well as receive input specifying changes to make to the configurations. The interface can be provided as an application, dashboard, web page, web application, API, etc.).
As per claim 26, Gardner teaches, wherein the user interface comprises a user interface to a web-based application ([0058], The management system 110 provides one or more interfaces to send information about the monitored computing environments as well as receive input specifying changes to make to the configurations. The interface can be provided as an application, dashboard, web page, web application, API, etc.).
As per claim 27, Gardner teaches, wherein to provide the user interface the computation service is configured to provide a graphical user interface to a web-based application, the graphical user interface comprising user interface elements for selecting from among a plurality of compute instance types ([0062], The user device 128 is able to communicate with the management system 110 through, for example, the network 108. Here, the user interface 126 is a graphical user interface (GUI)).
As per claim 28, this is the “method claim” corresponding to claim 21 and is rejected for the same reasons. The same motivation used in the rejection of claim 21 is applicable to the instant claim.
As per claim 29, this claim is similar to claim 22 and is rejected for the same reasons
As per claim 30, this claim is similar to claim 23 and is rejected for the same reasons
As per claim 31, this claim is similar to claim 24 and is rejected for the same reasons.
As per claim 32, this claim is similar to claim 25 and is rejected for the same reasons
As per claim 33, this claim is similar to claim 26 and is rejected for the same reasons
As per claim 35, this is the “non-transitory computer-readable media claim” corresponding to claim 21 and is rejected for the same reasons. The same motivation used in the rejection of claim 21 is applicable to the instant claim.
As per claim 36, this claim is similar to claim 22 and is rejected for the same reasons
As per claim 37, this claim is similar to claim 23 and is rejected for the same reasons
As per claim 38, this claim is similar to claim 25 and is rejected for the same reasons
As per claim 39, this claim is similar to claim 26 and is rejected for the same reasons
As per claim 40, this claim is similar to claim 27 and is rejected for the same reasons
Claim 34 is rejected under 35 U.S.C. 103 as being unpatentable over the combination of Guenther-Gardner-Masis-Hamer as applied to independent claim 28 and in further view of Theunissen et al. (US 10628228).
As per claim 34, The combination of Guenther-Gardner-Masis-Hamer fails to specifically teach, wherein the request for a different compute instance type includes an environment identifier that uniquely identifies the execution environment.
However, Theunissen teaches, wherein the request for a different compute instance type includes an environment identifier that uniquely identifies the execution environment (Column 22, Lines 17-22, the system may determine that the request identifies a first computing environment as the target computing environment in which the allocation of computing resources is desired. In one embodiments, the system may read an identifier for the target computing environment from the request).
The combination of Guenther-Gardner-Masis-Hamer and Theunissen are analogous because they are each related to managing computing environments. Guenther teaches a method of virtual machine provisioning and maintenance. Gardner teaches a method of managing virtual environments including storing and applying different versions of said environments. Masis teaches a method of provisioning based on templates. Hamer teaches a method of provisioning, monitoring, and adjusting computing environments including deallocating computing environments. Theunissen also teaches a method of provisioning, monitoring, and adjusting computing environments including user specified environments. (Abstract, Systems for processing requests to use virtual computing resources in communicatively isolated computing environments; Column 22, Lines 17-22, the system may determine that the request identifies a first computing environment as the target computing environment in which the allocation of computing resources is desired. In one embodiments, the system may read an identifier for the target computing environment from the request; and Column 23, Lines 21-23, the system may assign the target computing environment and the high-use computing environment(s) to the third tier, and at step 446 the system may assign all other computing environments to the second tier). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the services of the combination of Guenther-Gardner-Masis-Hamer would be modified with the mechanisms allocating specific computing environments resulting in a system that is able to provision and manage of virtual environments including identified specific environments. Therefore, it would have been obvious to combine the teachings of the combination of Guenther-Gardner-Masis-Hamer and Theunissen.
Conclusion
Applicant's amendment necessitated the new grounds of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MELISSA A HEADLY whose telephone number is (571)272-1972. The examiner can normally be reached Monday- Friday 9-5:30pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached at 571-272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/MELISSA A. HEADLY/
Examiner Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197