DETAILED ACTION
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 § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 19-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. The claim(s) does/do not fall within at least one of the four categories of patent eligible subject matter because the scope of claim 19 is unclear. Claim 19 defines “operations” but does not define the processors and servers. The processors and servers recite as intended use features but are not positively defined as actual structural elements in the claimed “system.” Therefore, claim 19 would fall under software per se and is not one of the four categories of patent eligible subject matter.
Claim 19 recites:
A system for configuration of a cloud application, the system comprising:
executing operations on one or more processors of one or more servers, the operations comprising:
receiving, from a client device by a user interface, a first input comprising a selection of a first graphical icon for addition to a graphical canvas area of the user interface, wherein the first graphical icon is representative of a first component of a plurality of components configured to be included in the cloud application, wherein each of the plurality of components comprise one of: (i) a cloud infrastructure service of a plurality of cloud infrastructure services, (ii) a public containerized service of a plurality of public containerized services, or (iii) a private containerized service of a plurality of private containerized services;
receiving, from the client device by the user interface, a second input comprising a selection of a second graphical icon for addition to the graphical canvas area, wherein the second graphical icon is representative of a second component of the plurality of components;
causing display, based on the receipt of the first and second inputs, of the first graphical icon and the second graphical icon by the graphical canvas area, wherein a topology of the cloud application is configured based on the graphical canvas area;
receiving, from the client device by the user interface, a third input comprising a selection of a first graphical connection indicator between the first graphical icon and the second graphical icon for addition to the graphical canvas area;
causing display, based on the receipt of the third input, of the first graphical connection indicator between the first graphical icon and the second graphical icon by the graphical canvas area, wherein the first graphical connection indicator is representative of a network connection between the first component and the second component; and
causing deployment of the cloud application to a cloud environment hosted by a cloud computing system, wherein the cloud application comprises the topology indicated by the graphical canvas area.
Step 1: Is the claim to a process, machine, manufacture, or composition of matter?
No.
Claim 19 is software per se. See above for a detailed explanation.
Claim 20 is rejected under 35 U.S.C. 101 because it is dependent on claim 19 and inherits the same deficiencies as described above. Therefore, claims 19-20 are rejected under 35 U.S.C. 101.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Duet et al. (U.S. Patent No. US 9893959 B1), hereinafter “Duet” in view of Alexander et al. (U.S. Patent No. US 20200065229 A1), hereinafter “Alexander” and Flavel et al. (U.S. Patent No. US 20130166705 A1), hereinafter “Flavel.”
With regards to Claim 1, Duet teaches:
A computer-implemented method for configuration of a cloud application, the method comprising: executing operations on one or more processors of one or more servers, the operations comprising:
receiving, from a client device by a user interface, a first input comprising a selection of a first graphical icon for addition to a graphical canvas area of the user interface, wherein the first graphical icon is representative of a first component of a plurality of components configured to be included in the cloud application (Fig. 2, Col. 12, lines 58-62 and Col. 13, lines 14-24, “As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology) … In various embodiments, clients interact with the cloud environment via a user interface (referred to herein as “canvas”) of an application or web-based console that translates the user inputs into a set of constraints and passes them on to the cloud controller 125 for processing and fulfillment. As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The user interacting with a user interface by dragging and dropping the beans into the middle section of the Canvas to include a resource in the model correlates to receiving, from a client device by a user interface, a first input comprising a selection of a first graphical icon for addition to a graphical canvas area of the user interface, wherein the first graphical icon is representative of a first component of a plurality of components configured to be included in the cloud application), wherein each of the plurality of components comprise one of: (i) a cloud infrastructure service of a plurality of cloud infrastructure services (Col. 1, lines 39-42 and Col. 13, lines 20-24, “As used herein, a “cloud provider” is a service provider that offers customers storage and/or software (e.g., application) services available via a cloud, which may be private, public, community, or hybrid cloud... As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The list of resources that the client can drag and drop to the Canvas including dynamic compute, database, messaging, storage and legacy hosts correlates to each of the plurality of components comprising one of cloud infrastructure service of a plurality of cloud infrastructure services),
receiving, from the client device by the user interface, a second input comprising a selection of a second graphical icon for addition to the graphical canvas area, wherein the second graphical icon is representative of a second component of the plurality of components (Fig. 2, Col. 12, lines 58-62 and Col. 13, lines 14-24, “As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology)… In various embodiments, clients interact with the cloud environment via a user interface (referred to herein as “canvas”) of an application or web-based console that translates the user inputs into a set of constraints and passes them on to the cloud controller 125 for processing and fulfillment. As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The user interacting with a user interface by dragging and dropping the beans into the middle section of the Canvas to include a second resource in the model as shown in Fig. 2 correlates to receiving, from the client device by the user interface, a second input comprising a selection of a second graphical icon for addition to the graphical canvas area, wherein the second graphical icon is representative of a second component of the plurality of components);
causing display, based on the receipt of the first and second inputs, of the first graphical icon and the second graphical icon by the graphical canvas area, wherein a topology of the cloud application is configured based on the graphical canvas area (Fig. 2, Col. 11, lines 35-41, Col. 12, lines 58-62 and Col. 13, lines 14-24, “Thus, Bean defines the specification of a given resource. A Deployment Model captures the specification of all required resources and their relationship. Thus, a Deployment Model is a collection of nodes (each node is represented by a Bean) and a set of relationship. The relationship among nodes is represented via Constraints which is described in detail in the next section… As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology) … In various embodiments, clients interact with the cloud environment via a user interface (referred to herein as “canvas”) of an application or web-based console that translates the user inputs into a set of constraints and passes them on to the cloud controller 125 for processing and fulfillment. As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The middle section of the Canvas including two compute node resources as shown in Fig. 2 correlates to causing display, based on the receipt of the first and second inputs, of the first graphical icon and the second graphical icon by the graphical canvas area. The user inputs into the canvas being translated into sets of constraints, which represent relationships between the beans or a topology, correlates to wherein a topology of the cloud application is configured based on the graphical canvas area);
receiving, from the client device by the user interface, a third input comprising a selection of a first graphical connection indicator between the first graphical icon and the second graphical icon for addition to the graphical canvas area (Fig. 2, Col. 9, lines 52-57, Col. 13, lines 23-30, “Clients can drag and drop one or more resource nodes using the icons into an area of the user interface, select any two or more resource nodes to create a group, and apply a constraint selected from a menu to the group. In this manner, clients can graphically model the resource requirements of the application... Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it.” The client selecting any two or more resource nodes to create a group in the Canvas, and applying a constraint such as both of the nodes being in the same data center as shown in Fig. 2, correlates to receiving, from the client device by the user interface, a third input comprising a selection of a first graphical connection indicator between the first graphical icon and the second graphical icon for addition to the graphical canvas area);
causing display, based on the receipt of the third input, of the first graphical connection indicator between the first graphical icon and the second graphical icon by the graphical canvas area (Fig. 2, Col. 9, lines 52-57, “Clients can drag and drop one or more resource nodes using the icons into an area of the user interface, select any two or more resource nodes to create a group, and apply a constraint selected from a menu to the group. In this manner, clients can graphically model the resource requirements of the application.” The client applying a constraint such as both of the nodes being in the same data center, which creates a “Datacenter 1” box around the selected nodes as shown in Fig. 2, correlates to causing display, based on the receipt of the third input, of the first graphical connection indicator between the first graphical icon and the second graphical icon by the graphical canvas area), and
causing deployment of the cloud application to a cloud environment hosted by a cloud computing system (Col. 14, lines 4-6, lines 14-18, and lines 24-28, “At block 420, the system receives an instruction from the client to implement the deployment model (or any other deployment model in the repository) … In some embodiments, the cloud controller can process and fulfill the order by instantiating the deployment model. Instantiating the deployment model creates the actual resources (e.g., creates the virtual machines) … In some embodiments, once the order is fulfilled, and the resources are instantiated in accordance with the model, a utilization manager (e.g., the utilization manager described in reference to FIG. 1A) can collect statistics on the utilization and/or other operating parameters of the resources.” The client requesting the deployment model to be implemented, which causes the deployment model to be instantiated through the cloud controller and allows a utilization manager to collect statistics of utilization of the resources, correlates to causing deployment of the cloud application to a cloud environment hosted by a cloud computing system), wherein the cloud application comprises the topology indicated by the graphical canvas area (Col. 11, lines 35-39, Col. 12, lines 58-64, “Thus, Bean defines the specification of a given resource. A Deployment Model captures the specification of all required resources and their relationship. Thus, a Deployment Model is a collection of nodes (each node is represented by a Bean) and a set of relationship… As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology). A model for an application can be created via a User Interface provided by the system 105 of FIG. 1A and can be saved in a repository and subsequently modified as many times as needed before ordering.” The deployment model capturing the specification of all required resources and their relationship, such as a topology, being created via the user interface correlates to the cloud application comprises the topology indicated by the graphical canvas area).
Duet does not explicitly teach:
wherein each of the plurality of components comprise one of:
(ii) a public containerized service of a plurality of public containerized services,
or (iii) a private containerized service of a plurality of private containerized services;
wherein the first graphical connection indicator is representative of a network connection between the first component and the second component;
However, Alexander teaches:
wherein each of the plurality of components comprise one of:
(ii) a public containerized service of a plurality of public containerized services (Paragraphs 29, 31, and 45, “For example, developers may rapidly provision, or destroy, an individual container across container endpoints. The environments may run on any container platforms, including containers that are internal to the organization, and containers that are external to the organization… Application developers may request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (e.g., Marathon Mesos, Cloud Foundry, Kubernetes, Fargate, EC2), etc… In step 205, a developer, at a client, may request an on-demand container-based development environment for code from a computer application, such as an on-demand application or server. In one embodiment, the developer may specify details for the environment; for example, components for the environment, such as the template, source, run command, ports, etc.” The developer specifying details or services of an environment such as provisioning containers external to the organization correlates to a public containerized service of a plurality of public containerized services),
or (iii) a private containerized service of a plurality of private containerized services (Paragraphs 29, 31, and 45, “For example, developers may rapidly provision, or destroy, an individual container across container endpoints. The environments may run on any container platforms, including containers that are internal to the organization, and containers that are external to the organization… Application developers may request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (e.g., Marathon Mesos, Cloud Foundry, Kubernetes, Fargate, EC2), etc… In step 205, a developer, at a client, may request an on-demand container-based development environment for code from a computer application, such as an on-demand application or server. In one embodiment, the developer may specify details for the environment; for example, components for the environment, such as the template, source, run command, ports, etc.” The developer specifying details or services of an environment such as provisioning containers internal to the organization correlates to a private containerized service of a plurality of private containerized services);
Additionally, Flavel teaches:
wherein the first graphical connection indicator is representative of a network connection between the first component and the second component (Paragraphs 50-51, 95, “The configuration synthesizer can operate in interactive mode to enable a customer administrator/agent to select and assemble building blocks via a web graphical user interface (GUI) drag-and-drop, with validation feedback provided in real-time as the user selects building blocks one at a time, or in batch mode as the user submits the completely composed configuration template as a batch. A configuration instantiator enables a customer to create an implementation instance of a template by filling out the template configuration parameter data… According to another aspect of the present disclosure, the dynamically-selected building blocks define parameters for communications between tangible network storage elements and tangible network computing elements within the virtual private cloud computing network.” The interactive mode enabling a customer to select and assemble building blocks through a GUI which can define communications between tangible network computing elements correlates to the first graphical connection indicator being representative of a network connection between the first component and the second component);
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein each of the plurality of components comprise one of: (ii) a public containerized service of a plurality of public containerized services, or (iii) a private containerized service of a plurality of private containerized services as taught by Alexander because development teams may create custom templates for more complex use cases which utilize any container platform such as containers internal or external to the organization. The developer does not need to know how to deploy on each environments, or have to specify which environments that the application workload needs to run on. Instead, the developer may define the type of environment needed, and request a new one to be provisioned and configured. Creating abstraction between application developers and PaaS and IaaS solution APIs allow developers to request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (Alexander: paragraphs 29-31).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein the first graphical connection indicator is representative of a network connection between the first component and the second component as taught by Flavel because using the resource elements and features as building blocks allow virtual private clouds with arbitrarily complex connectivity requirements to be designed and created by or for a customer. Additionally, a configuration synthesizer enables a customer or administrator to assemble various building block types into a customized configuration template through a GUI, and validate the customized configuration template against the set of usage rules in real-time or a batch mode (Flavel: paragraphs 30 and 50).
With regards to Claim 19, the method of Claim 1 performs the same steps as the system of Claim 19, and Claim 19 is therefore rejected using the same rationale set forth above in the rejection of Claim 1.
With regards to Claim 2, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein at least one of the first input, the second input, and the third input are provided by a pointing device communicatively coupled to the client device (Col. 3, lines 12-16, Col. 13, lines 50-58 and Col. 15, lines 31-34, “receiving, via a user interface displayed on a client device, specification of the resources, including a number and type of the resources, and a set of rules for placement of the resources in the cloud environment… As illustrated, a system receives as input resource modeling information such as specification of resources and a set of relationship among the resources via a user interface at block 405. In some embodiments, a client can specify the resources graphically, for example, by dragging and dropping resources into a defined area of the user interface. The client can also set the relationships between the resources graphically, for example, by grouping two or more resources and applying a constraint selected from a menu… The I/O device(s) 525 can include, for example, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device.” The system receiving input from a user graphically, such as by dragging and dropping or grouping resources in a user interface displayed on a client device, correlates to the first, second, and third inputs. The I/O device including pointing devices such as a mouse which reflects user input on the user interface of a client device correlates to at least one of the first input, the second input, and the third input are provided by a pointing device communicatively coupled to the client device).
With regards to Claim 20, the method of Claim 2 performs the same steps as the system of Claim 20, and Claim 20 is therefore rejected using the same rationale set forth above in the rejection of Claim 2.
With regards to Claim 3, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein the user interface is configured to be displayed by a display device communicatively connected by the client device (Col. 3, lines 12-16 and Col. 7, lines 29-33, “receiving, via a user interface displayed on a client device, specification of the resources, including a number and type of the resources, and a set of rules for placement of the resources in the cloud environment… In various embodiments, the client device 110 can be a desktop computer, a laptop, a tablet, a mobile device, a server, or any other processing device capable of communicating with other devices or servers via the network 115.” The client device including devices such as a desktop computer would require a monitor connected to the desktop computer to display a user interface on a client device, and therefore correlates to the user interface is configured to be displayed by a display device communicatively connected by the client device).
With regards to Claim 4, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein at least one of the plurality of cloud infrastructure services are provided by at least one cloud infrastructure provider (Col. 1, lines 39-42, Col. 6, lines 2-6, and Col. 13, lines 20-24, “As used herein, a “cloud provider” is a service provider that offers customers storage and/or software (e.g., application) services available via a cloud, which may be private, public, community, or hybrid cloud... In fact, the resource requirements conveyed by the modeling language would be applicable to any cloud provider environment. This makes it easier for an organization to migrate from one cloud provider to another… As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The list of resources that the client can drag and drop to the Canvas including dynamic compute, database, messaging, storage and legacy hosts correlates to a plurality of cloud infrastructure services. The resource requirements enabling an organization to migrate from one cloud provider to another would include at least one cloud provider and therefore correlates to at least one of the pluralities of cloud infrastructure services being provided by at least one cloud infrastructure provider).
With regards to Claim 5, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Alexander further teaches:
wherein the plurality of public containerized services are provided by at least one public registry (Paragraphs 29, 31, 45, and 52, “For example, developers may rapidly provision, or destroy, an individual container across container endpoints. The environments may run on any container platforms, including containers that are internal to the organization, and containers that are external to the organization… Application developers may request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (e.g., Marathon Mesos, Cloud Foundry, Kubernetes, Fargate, EC2), etc… In step 205, a developer, at a client, may request an on-demand container-based development environment for code from a computer application, such as an on-demand application or server. In one embodiment, the developer may specify details for the environment; for example, components for the environment, such as the template, source, run command, ports, etc… If a build template does not exist, in step 230, the build template is created. For example, the on-demand server or application will wait until the Docker compilation is completed, and the Docker image is in the image repository before continuing. Once the Docker image is available in the image repository (either because it is being reused from a previous build or the build finishes), the on-demand server or application may instruct the endpoint provider to create a new instance of the Docker image running on that endpoint.” The developer specifying details or services of an environment such as provisioning containers external to the organization correlates to the plurality of public containerized services. The build template being created using the Docker image from the image repository, which can be external to an organization, correlates to the plurality of public containerized services are provided by at least one public registry).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein the plurality of public containerized services are provided by at least one public registry as taught by Alexander because development teams may create custom templates for more complex use cases which utilize any container platform such as containers internal or external to the organization. The developer does not need to know how to deploy on each environments, or have to specify which environments that the application workload needs to run on. Instead, the developer may define the type of environment needed, and request a new one to be provisioned and configured. Creating abstraction between application developers and PaaS and IaaS solution APIs allow developers to request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (Alexander: paragraphs 29-31).
With regards to Claim 6, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Alexander further teaches:
wherein the plurality of private containerized services are provided by at least one private registry (Paragraphs 29, 31, 45, and 52, “For example, developers may rapidly provision, or destroy, an individual container across container endpoints. The environments may run on any container platforms, including containers that are internal to the organization, and containers that are external to the organization… Application developers may request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (e.g., Marathon Mesos, Cloud Foundry, Kubernetes, Fargate, EC2), etc… In step 205, a developer, at a client, may request an on-demand container-based development environment for code from a computer application, such as an on-demand application or server. In one embodiment, the developer may specify details for the environment; for example, components for the environment, such as the template, source, run command, ports, etc… If a build template does not exist, in step 230, the build template is created. For example, the on-demand server or application will wait until the Docker compilation is completed, and the Docker image is in the image repository before continuing. Once the Docker image is available in the image repository (either because it is being reused from a previous build or the build finishes), the on-demand server or application may instruct the endpoint provider to create a new instance of the Docker image running on that endpoint.” The developer specifying details or services of an environment such as provisioning containers internal to the organization correlates to the plurality of private containerized services. The build template being created using the Docker image from the image repository, which can be internal to the organization, correlates to the plurality of private containerized services are provided by at least one private registry).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet wherein the plurality of private containerized services are provided by at least one private registry as taught by Alexander because development teams may create custom templates for more complex use cases which utilize any container platform such as containers internal or external to the organization. The developer does not need to know how to deploy on each environments, or have to specify which environments that the application workload needs to run on. Instead, the developer may define the type of environment needed, and request a new one to be provisioned and configured. Creating abstraction between application developers and PaaS and IaaS solution APIs allow developers to request an environment with the services and a technical stack they need without needing to configure HA Proxies, providing API/CLI syntax per endpoint (Alexander: paragraphs 29-31).
With regards to Claim 7, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein the receiving the first input comprising the selection of the first graphical icon for addition to the graphical canvas area of the user interface further comprises: receiving the first input comprising the selection of the first graphical icon from a graphical sidebar area of the user interface for addition to the graphical canvas area (Fig. 2, Col. 12, lines 58-62 and Col. 13, lines 14-24, “As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology) … In various embodiments, clients interact with the cloud environment via a user interface (referred to herein as “canvas”) of an application or web-based console that translates the user inputs into a set of constraints and passes them on to the cloud controller 125 for processing and fulfillment. As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The user interacting with a user interface by dragging and dropping the beans from the left hand side of the Canvas into the middle section of the Canvas as shown in Fig. 2 to include a resource in the model correlates to receiving the first input comprising the selection of the first graphical icon from a graphical sidebar area of the user interface for addition to the graphical canvas area), wherein the selection of the first graphical icon comprises moving the first graphical icon from a first position of the user interface included in the graphical sidebar area to a second position of the user interface included the graphical canvas area (Fig. 2, Col. 12, lines 58-62 and Col. 13, lines 14-24, “As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology) … In various embodiments, clients interact with the cloud environment via a user interface (referred to herein as “canvas”) of an application or web-based console that translates the user inputs into a set of constraints and passes them on to the cloud controller 125 for processing and fulfillment. As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200.” The user interacting with a user interface by dragging a bean from the left hand side of the Canvas and dropping the bean into the middle section of the Canvas as shown in Fig. 2 to include a resource in the model correlates to the selection of the first graphical icon comprises moving the first graphical icon from a first position of the user interface included in the graphical sidebar area to a second position of the user interface included the graphical canvas area).
With regards to Claim 8, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein based on the receipt of the first and second inputs, the first graphical icon is positioned at a first position of the user interface included in the graphical canvas area and the second graphical icon is positioned at a second position of the user interface included in the graphical canvas area, the first position being different from the second position (Fig. 2, Col. 12, lines 58-62 and Col. 13, lines 14-30, “As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology) … In various embodiments, clients interact with the cloud environment via a user interface (referred to herein as “canvas”) of an application or web-based console that translates the user inputs into a set of constraints and passes them on to the cloud controller 125 for processing and fulfillment. As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it.” The middle section of the Canvas displaying two compute node resources “Compute Node 2” and “Compute Node 3” in distinct locations as shown in Fig. 2 correlates to the first graphical icon is positioned at a first position of the user interface included in the graphical canvas area and the second graphical icon is positioned at a second position of the user interface included in the graphical canvas area, the first position being different from the second position).
With regards to Claim 9, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein the selection of the first graphical connection indicator comprises one of:(i) drawing the first graphical connection indicator in an area of the graphical canvas area between the first graphical icon and the second graphical icon, or (ii) connecting a first end of the first graphical connection indicator adjacent to the first graphical icon and connecting a second end of the first graphical connection indicator adjacent to the second graphical icon (Fig. 3, Col. 13, lines 31-37, “Canvas 300 depicted in FIG. 3 shows that the “compute node 2” (310) and “compute node 3” (315) are more constrained than the corresponding nodes shown in FIG. 2. For example, the compute nodes 310 and 315 are assigned to the same “Datacenter 1” (305) and the same Hypervisor “HV3.” “compute node 5” (325) and “compute node 6” (330) are placed in the same “Region 2” (320)…” The “Compute Node 2” and “Compute Node 3” being connected through a “Region 2” group label with two distinct endpoints of the indicator surrounding the compute nodes and group label as shown in Fig. 3 correlates to connecting a first end of the first graphical connection indicator adjacent to the first graphical icon and connecting a second end of the first graphical connection indicator adjacent to the second graphical icon).
With regards to Claim 10, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein the graphical canvas area comprises a plurality of graphical icons representative of a subset of the plurality of components (Fig. 2 and Fig. 3, Col. 13, lines 20-39, “As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it. Canvas 300 depicted in FIG. 3 shows that the “compute node 2” (310) and “compute node 3” (315) are more constrained than the corresponding nodes shown in FIG. 2. For example, the compute nodes 310 and 315 are assigned to the same “Datacenter 1” (305) and the same Hypervisor “HV3.” “compute node 5” (325) and “compute node 6” (330) are placed in the same “Region 2” (320), while the “storage node 4” (335) and the compute nodes 7 and 8 (340 and 345 respectively) are constraint free.” A client can model resource requirements by dragging and dropping beans one at a time into the graphical canvas area. Therefore, any time period where the client has not finished adding every resource to be configured, such as in Fig. 2, which has less resources than a later stage which could be represented by Fig. 3, which includes more resources, would correlate to the graphical canvas area comprising a plurality of graphical icons representative of a subset of the plurality of components), wherein the plurality of graphical icons comprises at least the first graphical icon and the second graphical icon, and wherein the subset of the plurality of components comprises at least the first component and the second component (Fig. 2 and Fig. 3, Col. 13, lines 20-39, “As depicted in FIG. 2, a list of resources 210 such as dynamic compute, database, messaging, storage and legacy hosts is displayed on the left hand side of the Canvas 200. Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it. Canvas 300 depicted in FIG. 3 shows that the “compute node 2” (310) and “compute node 3” (315) are more constrained than the corresponding nodes shown in FIG. 2. For example, the compute nodes 310 and 315 are assigned to the same “Datacenter 1” (305) and the same Hypervisor “HV3.” “compute node 5” (325) and “compute node 6” (330) are placed in the same “Region 2” (320), while the “storage node 4” (335) and the compute nodes 7 and 8 (340 and 345 respectively) are constraint free.” The two compute nodes “Compute Node 2” and “Compute Node 3” represented by graphical images in the middle section of the Canvas shown in Fig. 2 correlates to the plurality of graphical icons comprising at least the first and second graphical icon and the first and second component respectively. Therefore, the current state of Fig. 2 which can represent an earlier time point with less compute nodes than in Fig. 3, but still includes “Compute Node 2” and “Compute Node 3,” correlates to the subset of the plurality of components comprising at least the first component and the second component).
With regards to Claim 11, Duet in view of Alexander and Flavel teaches the method of claim 10 above. Flavel further teaches:
wherein the graphical canvas area comprises at least one graphical connection indicator representative of a network connection between two components of the subset of the plurality of components (Paragraphs 50-51, 95, “The configuration synthesizer can operate in interactive mode to enable a customer administrator/agent to select and assemble building blocks via a web graphical user interface (GUI) drag-and-drop, with validation feedback provided in real-time as the user selects building blocks one at a time, or in batch mode as the user submits the completely composed configuration template as a batch. A configuration instantiator enables a customer to create an implementation instance of a template by filling out the template configuration parameter data… According to another aspect of the present disclosure, the dynamically-selected building blocks define parameters for communications between tangible network storage elements and tangible network computing elements within the virtual private cloud computing network.” The interactive mode enabling a customer to select and assemble building blocks through a GUI drop-and-drop mode would involve adding building blocks iteratively and therefore any time point before the final configuration of blocks are added would include less building blocks than the final configuration and correlate to the subset of the plurality of components. The customer selecting and assembling building blocks which can define communications between tangible network computing elements correlates to the graphical canvas area comprising at least one graphical connection indicator representative of a network connection between two components of the subset of the plurality of components), wherein the network connection between the two components of the subset of the plurality of components comprises at least the network connection between the first component and the second component, and wherein the at least one graphical connection indicator comprises the first graphical connection indicator (Paragraphs 50-51, 95, “The configuration synthesizer can operate in interactive mode to enable a customer administrator/agent to select and assemble building blocks via a web graphical user interface (GUI) drag-and-drop, with validation feedback provided in real-time as the user selects building blocks one at a time, or in batch mode as the user submits the completely composed configuration template as a batch. A configuration instantiator enables a customer to create an implementation instance of a template by filling out the template configuration parameter data… According to another aspect of the present disclosure, the dynamically-selected building blocks define parameters for communications between tangible network storage elements and tangible network computing elements within the virtual private cloud computing network.” The customer selecting and assembling building blocks to define communications between tangible network computing elements would include at least two tangible network computing elements and therefore correlates to the network connection between the two components of the subset of the plurality of components comprising at least the network connection between the first component and the second component. The interactive mode enabling a customer to select and assemble building blocks through a GUI drop-and-drop mode correlates to the at least one graphical connection indicator comprising the first graphical connection indicator).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein the graphical canvas area comprises at least one graphical connection indicator representative of a network connection between two components of the subset of the plurality of components, wherein the network connection between the two components of the subset of the plurality of components comprises at least the network connection between the first component and the second component, and wherein the at least one graphical connection indicator comprises the first graphical connection indicator as taught by Flavel because using the resource elements and features as building blocks allow virtual private clouds with arbitrarily complex connectivity requirements to be designed and created by or for a customer. Additionally, a configuration synthesizer enables a customer or administrator to assemble various building block types into a customized configuration template through a GUI, and validate the customized configuration template against the set of usage rules in real-time or a batch mode (Flavel: paragraphs 30 and 50).
With regards to Claim 12, Duet in view of Alexander and Flavel teaches the method of claim 11 above. Duet further teaches:
wherein the topology of the cloud application comprises at least (i) the subset of the plurality of components (Col. 12, lines 58-64, “As described above, the model is the representation of the intent, denoting the number of required resources, type and specification of resources (Beans) and the relationship among them (i.e., topology). A model for an application can be created via a User Interface provided by the system 105 of FIG. 1A and can be saved in a repository and subsequently modified as many times as needed before ordering.” The model representing the specification of resources and the relationship or topology, which can be saved and modified as many times as needed to adjust the variables such as the number of required resources correlates to the topology of the cloud application comprising at least the subset of the plurality of components).
Duet does not explicitly teach that the topology of the cloud application comprises the network connection between the first component and the second component. However, the network connection between the first component and the second component is a popular type of relationship or constraint between a first and second component as evidenced by Flavel (Paragraphs 50-51, 95, “The configuration synthesizer can operate in interactive mode to enable a customer administrator/agent to select and assemble building blocks via a web graphical user interface (GUI) drag-and-drop, with validation feedback provided in real-time as the user selects building blocks one at a time, or in batch mode as the user submits the completely composed configuration template as a batch. A configuration instantiator enables a customer to create an implementation instance of a template by filling out the template configuration parameter data… According to another aspect of the present disclosure, the dynamically-selected building blocks define parameters for communications between tangible network storage elements and tangible network computing elements within the virtual private cloud computing network.” The interactive mode enabling a customer to select and assemble building blocks through a GUI which can define communications between tangible network computing elements correlates to a network connection between the first component and the second component).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with the topology of the cloud application comprises the network connection between the first component and the second component as taught by Flavel because using the resource elements and features as building blocks allow virtual private clouds with arbitrarily complex connectivity requirements to be designed and created by or for a customer. Additionally, a configuration synthesizer enables a customer or administrator to assemble various building block types into a customized configuration template through a GUI, and validate the customized configuration template against the set of usage rules in real-time or a batch mode (Flavel: paragraphs 30 and 50).
With regards to Claim 13, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
causing display, based on the receipt of the first input, of a graphical webform in the graphical canvas area, wherein the graphical webform comprises a selection element for selecting one of a plurality of variables for configuration of the first component (Fig. 2, Col. 13, lines 23-30, “Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it.” The client dragging and dropping a particular bean into the middle section of the Canvas, which is displayed on the GUI, correlates to the receipt of the first input. The client then selecting an applicable constraint from the menu for a particular bean correlates to causing display, based on the receipt of the first input, of a graphical webform in the graphical canvas area, wherein the graphical webform comprises a selection element for selecting one of a plurality of variables for configuration of the first component);
receiving, from the client device by the user interface, a fourth input comprising a selection of a first variable of the plurality of variables; and storing the first variable (Fig. 2 and Fig. 3, Col. 13, lines 23-30 and lines 39-41, “Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it… Canvas 300 also depicts attributes of the selected “compute node 6” (330) on the right hand side panel 350 of the Canvas 300.” The client selecting an applicable constraint from the menu for a particular bean as shown in Fig. 2 correlates to receiving, from the client device by the user interface, a fourth input comprising a selection of a first variable of the plurality of variables. The client clicking on a particular bean, which causes a panel representing attributes of the bean to appear on the right hand side of the Canvas as shown in Fig. 3 correlates to storing the first variable).
With regards to Claim 14, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
wherein the operations further comprise: causing display, based on the receipt of the third input, of a graphical webform in the graphical canvas area, wherein the graphical webform comprises a selection element for selecting one of a plurality of variables for configuration between the first component and the second component (Fig. 2, Col. 13, lines 23-30, “Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it.” The client selecting any two or more resource nodes to create a group in the Canvas correlates to the receipt of the third input. The client selecting an applicable constraint from the menu for selected group of beans correlates to causing display, based on the receipt of the third input, of a graphical webform in the graphical canvas area, wherein the graphical webform comprises a selection element for selecting one of a plurality of variables for configuration between the first component and the second component);
receiving, from the client device by the user interface, a fourth input comprising a selection of a first variable of the plurality of variables; and storing the first variable (Fig. 2 and Fig. 3, Col. 13, lines 23-30 and lines 39-41, “Clients can model their resource requirements by dragging and dropping the beans to the middle section of the Canvas 200. Constraints can be assigned to one or more nodes by highlighting or selecting them (thereby creating a group) and selecting an applicable constraint from the menu 235. For example, in FIG. 2, “compute node 2” (215) and “compute node 3” (220) are assigned to the same “Datacenter 1” (225). “storage node 4” (230) has no constraints associated with it.” The client selecting an applicable constraint, such as two nodes being assigned to the same data center, from the menu for a selected group of beans as shown in Fig. 2 or Fig. 3 correlates to receiving, from the client device by the user interface, a fourth input comprising a selection of a first variable of the plurality of variables. The Canvas reflecting the compute nodes being assigned the same data center as shown in Fig. 2 and Fig. 3 correlates to storing the first variable).
Duet does not explicitly teach that the configuration between the first component and the second component [is for] the network connection. However, configuring the network connection between the first component and the second component is a popular type of relationship or constraint between a first and second component as evidenced by Flavel above (Paragraphs 50-51, 95).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with the network connection between the first component and the second component as taught by Flavel because using the resource elements and features as building blocks allow virtual private clouds with arbitrarily complex connectivity requirements to be designed and created by or for a customer. Additionally, a configuration synthesizer enables a customer or administrator to assemble various building block types into a customized configuration template through a GUI, and validate the customized configuration template against the set of usage rules in real-time or a batch mode (Flavel: paragraphs 30 and 50).
With regards to Claim 15, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Alexander further teaches:
wherein the first connection is configured to define (i) the first component as a source in the cloud application (Paragraphs 45, 50 and 55-56, “In step 205, a developer, at a client, may request an on-demand container-based development environment for code from a computer application, such as an on-demand application or server. In one embodiment, the developer may specify details for the environment; for example, components for the environment, such as the template, source, run command, ports, etc.… For example, the on-demand server may base the build template on specifications provided by the developer, by analyzing the job, by comparing the job to a prior job, etc.… In step 250, the on-demand server may direct the client to the agent, and the client may deploy a code package (e.g., binaries) to the agent. In step 255, the agent may unpack the code package, and may start the application on the endpoint(s).” The developer providing specifications such as a source for the container-based build template correlates to the first connection defining the first component as a source in the cloud application) and (ii) the second component as a target in the cloud application (Paragraphs 9, 43, 50 and 55-56, “In one embodiment, the build template may include at least one of an identification of an operating system, an application infrastructure, an on-demand agent, a port, and debugging tool… In one embodiment, each endpoint 130 may have agent 131 installed. For example, agent 131 may be bundled with container templates or otherwise installed by on-demand application or server 120. When started (e.g., upon provisioning of a container), agent 131 may listen for commands to deploy code packages on the endpoint.… For example, the on-demand server may base the build template on specifications provided by the developer, by analyzing the job, by comparing the job to a prior job, etc.… In step 250, the on-demand server may direct the client to the agent, and the client may deploy a code package (e.g., binaries) to the agent. In step 255, the agent may unpack the code package, and may start the application on the endpoint(s).” The developer providing specifications such as an endpoint with an agent installed for the container-based build template, which directs the client request to the endpoint, correlates to the first connection defining the second component as a target in the cloud application).
Alexander does not explicitly teach that the first connection is a first graphical connection indicator. However, graphical connection indicators are a popular method of indicating build template relationships between components as evidenced by Duet (Fig. 2, Col. 9, lines 52-57, “Clients can drag and drop one or more resource nodes using the icons into an area of the user interface, select any two or more resource nodes to create a group, and apply a constraint selected from a menu to the group. In this manner, clients can graphically model the resource requirements of the application.” The client applying a constraint such as both of the nodes being in the same data center, which creates a “Datacenter 1” box around the selected nodes as shown in Fig. 2, correlates to a first graphical connection indicator).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein the first connection is configured to define (i) the first component as a source in the cloud application and (ii) the second component as a target in the cloud application as taught by Alexander because template allow an agent to perform application code deployment and creates a separation of responsibilities for the developer. This lets application developers focus on their application logic and inject it into the runtime container when required. Each instance of a template on an endpoint can contain one application binary and agent, which gives developers maximum flexibility in either very specifically defining their runtime environment (e.g., number of instances, type of template, endpoint, etc.), or giving very high level instructions and allowing on-demand application or server to pick the most suitable values for the non-defined parameters (Alexander: paragraphs 27-28 and 42).
With regards to Claim 16, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Duet further teaches:
receiving, from the client device by the user interface, a fourth input configured to cause deployment of the cloud application to the cloud environment hosted by the cloud computing system (Col. 7, lines 54-56, Col. 14, lines 4-6, lines 14-18, and lines 24-28, “In some embodiments, the client device 110 can request cloud resources by placing an order to implement a deployment model stored in the repository 126… At block 420, the system receives an instruction from the client to implement the deployment model (or any other deployment model in the repository) … In some embodiments, the cloud controller can process and fulfill the order by instantiating the deployment model. Instantiating the deployment model creates the actual resources (e.g., creates the virtual machines) … In some embodiments, once the order is fulfilled, and the resources are instantiated in accordance with the model, a utilization manager (e.g., the utilization manager described in reference to FIG. 1A) can collect statistics on the utilization and/or other operating parameters of the resources.” The client requesting the deployment model to be implemented through the client device, which causes the deployment model to be instantiated through the cloud controller and allows a utilization manager to collect statistics of utilization of the resources correlates to receiving, from the client device by the user interface, a fourth input configured to cause deployment of the cloud application to the cloud environment hosted by the cloud computing system).
With regards to Claim 17, Duet in view of Alexander and Flavel teaches the method of claim 16 above. Alexander further teaches:
wherein the fourth input further comprises a selection of a schedule for causing deployment of the cloud application to the cloud environment, wherein the cloud application is configured to be deployed to the cloud environment based on the schedule (Paragraphs 34-37, “In one embodiment, client 110 may be used to provision and deploy environments… Client 110 may include CLI 112, IDE/Build Tool 114, and browser/web interface 116. In one embodiment, developers may be presented with various, different ways to interact with on-demand application or server 120 so they may pick the one that is easiest for them to memorize… As a build tool, environments may be provisioned and started from a Continuous Integration/Continuous Delivery pipeline as a build step (e.g., download code, compile, unit test, ondemand provision environment, deploy, automated testing, ondemand delete environment, deploy to QA) … Browser/Web Interface 116 may provide an interface via, for example, a website where developers may define their application metadata, upload their application binary via a graphical user interface, etc. This may be an alternative to using CLI 112 or IDE/Build Tool 114. The developer may manually enter the information they care about and point and click to deploy.” The developers entering information in the build tool for steps to execute in the CI/CD pipeline prior to initiating deployment, such as unit testing, on demand provisioning, deployment, and automated testing, correlates to the fourth input further comprises a selection of a schedule for causing deployment of the cloud application to the cloud environment, wherein the cloud application is configured to be deployed to the cloud environment based on the schedule).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein the fourth input further comprises a selection of a schedule for causing deployment of the cloud application to the cloud environment, wherein the cloud application is configured to be deployed to the cloud environment based on the schedule as taught by Alexander because build tools can be integrated in a client to help provision and deploy environments for individual, feature branches, or applications including multiple endpoints. Developers can use various ways to interact with on-demand applications or servers which may be provisioned and started from a Continuous Integration/Continuous Delivery pipeline as a build step and allowing developers to enter relevant information (Alexander: paragraphs 34-37).
With regards to Claim 18, Duet in view of Alexander and Flavel teaches the method of claim 1 above. Alexander further teaches:
wherein the operations further comprise: receiving, from the client device by the user interface and after causing deployment of the cloud application to the cloud environment, a fourth input configured to cause decommissioning of the cloud environment hosted by the cloud computing system (Paragraphs 34-37, “In one embodiment, client 110 may be used to provision and deploy environments… Client 110 may include CLI 112, IDE/Build Tool 114, and browser/web interface 116. In one embodiment, developers may be presented with various, different ways to interact with on-demand application or server 120 so they may pick the one that is easiest for them to memorize… As a build tool, environments may be provisioned and started from a Continuous Integration/Continuous Delivery pipeline as a build step (e.g., download code, compile, unit test, ondemand provision environment, deploy, automated testing, ondemand delete environment, deploy to QA) … Browser/Web Interface 116 may provide an interface via, for example, a website where developers may define their application metadata, upload their application binary via a graphical user interface, etc. This may be an alternative to using CLI 112 or IDE/Build Tool 114. The developer may manually enter the information they care about and point and click to deploy.” The developers entering information in the build tool for steps to execute in the CI/CD pipeline, such as unit testing and on demand delete environment, before pointing and clicking to deploy, correlates to causing deployment of the cloud application to the cloud environment. The developer then utilizing the entered CI/CD pipeline on demand delete environment step would involve an on demand input from the developer after the application has been deployed and therefore correlates to receiving, from the client device by the user interface and after causing deployment of the cloud application to the cloud environment, a fourth input configured to cause decommissioning of the cloud environment hosted by the cloud computing system).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Duet with wherein the operations further comprise: receiving, from the client device by the user interface and after causing deployment of the cloud application to the cloud environment, a fourth input configured to cause decommissioning of the cloud environment hosted by the cloud computing system as taught by Alexander because build tools can be integrated in a client to help provision and deploy environments for individual, feature branches, or applications including multiple endpoints. Developers can use various ways to interact with on-demand applications or servers which may be provisioned and started from a Continuous Integration/Continuous Delivery pipeline as a build step and allowing developers to enter relevant information (Alexander: paragraphs 34-37).
Prior Art Made of Record
The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure.
Arroyo et al. (U.S. Patent No. US 20130198740 A1); teaching a method of creating virtual units in a computing environment using a virtual system definition. Relationship constraints between virtual units in the virtual system can be specified which include a communication link requirement between the virtual units and/or a location requirement between the virtual units. The virtual units can be deployed by a processor based on the specified relationship constraints between the virtual units.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SELINA HU whose telephone number is (571)272-5428. The examiner can normally be reached Monday-Friday 8:30-5:30.
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, Chat Do can be reached at (571) 272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
The publicPAIR and privatePAIR systems are no longer available. 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.
SELINA HU
Examiner
Art Unit 2193
/Chat C Do/Supervisory Patent Examiner, Art Unit 2193