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 .
Statement of Patent Eligibility (Not a Rejection)
With respect to claim 1, Examiner finds “recognize a simulation of a management system as an endpoint of a development platform in a virtualized environment; and execute performance testing on the development platform using the simulation” when read as an ordered combination cannot be practically performed in the human mind and reflects an improvement disclosed in the specification in at least paragraph 14.
As such, claim 1 is directed to patent eligible subject matter. This analysis also applies to claims 2-20.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 15-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention
Claim 15 recites “an endpoint engine configured to. . . and an execution engine configured to. . . “.
Examiner finds the terms “endpoint engine” and “execution engine” are generic placeholders similar to the word “module1” or “code”; Examiner further finds “configured to” is a linking phrase2; lastly, Examiner further finds the generic placeholder is not modified by sufficient structure to perform the recited functions. See MPEP 2181 (I). Thus, it appears Applicant has invoked 112(f).
Because these claim limitation(s) invoke(s) 35 U.S.C. 112(f), these element(s) are interpreted to cover the corresponding structure described in the specification that achieves the claimed function, and equivalents thereof. See MPEP 2181. However, the written description fails to clearly link a corresponding structure, material, or acts for each of the claimed functions. See id (II)(C).
For computer implemented means plus function limitations, “a general purpose computer is usually only sufficient as the corresponding structure for performing a general computing function (e.g., ‘means for storing data’), but the corresponding structure for performing a specific function is required to be more than simply a general purpose computer or microprocessor.” MPEP 2181 (II)(B).
Here, the functions in the claim are not general computing functions such as “storing”. See Id. As such, the specification “must include the algorithm needed to transform the general purpose computer or microprocessor disclosed in the specification.” Id. Because the specification does not clearly link an appropriate algorithm for each limitation, the claim is rejected as being indefinite. See id (II)(C)
For a means- (or step-) plus- function claim limitation that invokes 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, a rejection under 35 U.S.C. 112(b) or pre-AIA 35 U.S.C. 112, second paragraph, is appropriate if one of ordinary skill in the art cannot identify what structure, material, or acts disclosed in the written description of the specification perform the claimed function.
Applicant may:
(a) Amend the claim so that the claim limitation will no longer be interpreted as a limitation under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph;
(b) Amend the written description of the specification such that it expressly recites what structure, material, or acts perform the entire claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(c) Amend the written description of the specification such that it clearly links the structure, material, or acts disclosed therein to the function recited in the claim, without introducing any new matter (35 U.S.C. 132(a)).
If applicant is of the opinion that the written description of the specification already implicitly or inherently discloses the corresponding structure, material, or acts and clearly links them to the function so that one of ordinary skill in the art would recognize what structure, material, or acts perform the claimed function, applicant should clarify the record by either:
(a) Amending the written description of the specification such that it expressly recites the corresponding structure, material, or acts for performing the claimed function and clearly links or associates the structure, material, or acts to the claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(b) Stating on the record what the corresponding structure, material, or acts, which are implicitly or inherently set forth in the written description of the specification, perform the claimed function. For more information, see 37 CFR 1.75(d) and MPEP §§ 608.01(o) and 2181.
Claims 16-20 inherit the deficiencies of claim 15.
Examiner recommends adding structural limitations such as a memory and/or processor to each functional limitation such that 35 USC 112(f) will not be invoked.
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-5, 7-12, and 14-19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nico, Running Python and Terraform against a simulated vCenter environment with vcsim Jan 6, 2021 in view of Hiremath, Data Centre Simulation for Performance Testing, 04/11/2021
With respect to claim 1, Nico teaches “1. A non-transitory machine-readable medium having instructions stored thereon which, when executed by a processor, cause the processor to: recognize a simulation of a management system as an endpoint of a development platform in a virtualized environment” on p. 2
The instructions on his blog were perfectly clear and I had saved my VMware Cloud in minutes
PNG
media_image1.png
414
960
media_image1.png
Greyscale
Now that I have saved my vCenter’s inventory, I can simulate it by running the following command:
nvibert-a01$ $GOPATH/bin/vcsim -load vcsim-vcenter.sddc-A-B-C-D.vmwarevmc.comexport GOVC_URL=https://user:pass@127.0.0.1:8989/sdk GOVC_SIM_PID=65075
My fake vCenter is now running in the background. Open a new terminal and start getting your Terraform ready
nvibert-a01$ $GOPATH/bin/vcsim -load vcsim-vcenter
Now, I just grabbed my previous Terraform configs – check any of my previous Terraform posts for an explanation of what these files are:
(Examiner finds vCenter teaches “a management system as an endpoint of a development platform in a virtualized environment”; vCenter is simulated (i.e. vcsim); endpoint is the localhost and port );
p. 5:
The Terraform configuration file executes some read-only commands (that’s what data blocks are for) to check the id of the (fake) resources we have running and it also creates new folders, tags and a new VM:
p. 8:
What’s even cooler is that you can interact with other automation tools against this virtual environment. For example, if I just use PowerCLI, I can see the fake stuff I created with Terraform
(Examiner finds code related to Terraform teaches recognizing the virtual environment (vCenter/vcsim));
see also page 9:
Then I ran one of the samples Python scripts that simply collects the list of VMs from vCenter. As you can see, running the script is very easy – you just have to specify the vCenter server (here, the simulated one is local on the EC2 instance so use 127.0.0.1), use the port 8989 and you can use any username and password.
“and execute . . . testing on the development platform using the simulation” on p. 10:
Testing Changes
For customers that want to validate changes on their live vCenter environment, they can simply record their live vCenter, execute their API scripts on the simulated/vcsim version before running it on the live environment.
(Examiner finds “validate changes” teaches “testing on the development platform using the simulation”).
It appears Nico fails to explicitly teach performance testing.
However, Hiremath, Data Centre Simulation for Performance Testing, 04/11/2021 teaches performance testing in the title, p. 2 (“Creating performance metrics and gathering reports”).
Hiremath and Nico are analogous art because they are from the same field of endeavor as the claimed invention.
It would have been obvious to one skilled in the art before the effective filing date of the invention to modify “and execute . . . testing on the development platform using the simulation” in Nico to include “performance testing” as taught by Hiremath.
The motivation would have been to save system resources by simulating testing rather than deploying an expensive and exhaustive hardware ecosystem. See Hiremath page 1:
It is a matter of concern. Since the performance and scale tests are run only once or twice per product/release, it really doesn’t make sense deploying such an expensive and exhaustive hardware ecosystem.
Innominds has deep experience in testing the VDI Infrastructure and DaaS solutions. This includes end-to-end testing along with the infrastructure set up and also benchmarking the performance of VDI.
The vCenter Simulator is an internal simulation tool developed by VMware. It allows simulating several thousands of VMs. This tool requires a resource that is used by VCSA (2vcpu & 8GB memory– a default configuration). It does support some basic vSphere inventory operations such as create/destroy and power operations. The added advantage of this simulator tool is that it can also manage actual hosts and VMs along with the simulated setup
With respect to claim 2, Nico teaches “2. The medium of claim 1, including instructions to provision a simulated virtual computing instance (VCI) of the simulated management system” on p. 4 lines 77 through p. 5 line 109 (Examiner finds the vsphere virtual machine teaches a VCI--see spec para. 7 (“The term "virtual computing instance" (VCI) refers generally to an isolated user space instance, which can be executed within a virtualized environment”)) .
With respect to claim 3, Hiremath teaches “3. The medium of claim 1, wherein the instructions to execute performance testing on the development platform using the simulation include instructions to execute scale testing and load testing on the development platform”
On p. 1
For smaller companies that are looking to test their products for scalability and performance. .
On p. 3 When logged into the Center Server, there will be a new inventory based on the new configurations. At this point, you are probably ready for start playing with vcsim, even though it is an internal tool. Now this solution helps in simulating a lot of tests needed for testing your products’ performance and scalability. You can simulate thousands of hosts and VMs.
Examiner finds “scalability” suggests scale testing and “performance” suggests load testing.
Alternatively, Examiner takes official notice that “instructions to execute scale testing and load testing on the development platform” was well known in the art at the time of filing.
It would have been obvious to modify “wherein the instructions to execute performance testing on the development platform” to include “using the simulation include instructions to execute scale testing and load testing on the development platform.”
The motivation would have been to save system resources by simulating testing rather than deploying an expensive and exhaustive hardware ecosystem. See Hiremath page 1:
It is a matter of concern. Since the performance and scale tests are run only once or twice per product/release, it really doesn’t make sense deploying such an expensive and exhaustive hardware ecosystem.
Innominds has deep experience in testing the VDI Infrastructure and DaaS solutions. This includes end-to-end testing along with the infrastructure set up and also benchmarking the performance of VDI.
The vCenter Simulator is an internal simulation tool developed by VMware. It allows simulating several thousands of VMs. This tool requires a resource that is used by VCSA (2vcpu & 8GB memory– a default configuration). It does support some basic vSphere inventory operations such as create/destroy and power operations. The added advantage of this simulator tool is that it can also manage actual hosts and VMs along with the simulated setup
With respect to claim 4, Nico teaches “4. The medium of claim 1, including instructions to validate a new feature of the development platform using the simulation” on p. 10
For customers that want to validate changes on their live vCenter environment, they can simply record their live vCenter, execute their API scripts on the simulated/vcsim version before running it on the live environment.
(Examiner finds “changes” suggests new features).
With respect to claim 5, Nico teaches “5. The medium of claim 1, wherein the simulation of the management system includes simulations of: data centers; clusters;. . . ; data stores;. . . ” on pp. 2-3 (emphasis added):
variable "data_center" { default = "SDDC-Datacenter" }variable "cluster" { default = "Cluster-1" }variable "workload_datastore" { default = "WorkloadDatastore" }variable "compute_pool" { default = "Compute-ResourcePool" }
. . .
vsphere_server = "localhost:8989"
. . .
data "vsphere_datacenter" "dc" { name = var.data_center}data "vsphere_compute_cluster" "cluster" { name = var.cluster datacenter_id = data.vsphere_datacenter.dc.id}data "vsphere_datastore" "datastore" { name = var.workload_datastore datacenter_id = data.vsphere_datacenter.dc.id} data "vsphere_resource_pool" "pool" { name = var.compute_pool datacenter_id = data.vsphere_datacenter.dc.id
p. 6
host_system_id
Hiremath teaches hosts and storage clusters on p. 3
DC
Hosts per DC
VM per Host
Powered on VM per Host
Cluster per Datacenter
Host Per Cluster
Resource Pool per Cluster
VM per Resource Pool
Powered On VM
vCPU for a VM
vMEM for a VM
(emphasis added).
It would have been obvious to modify “wherein the simulation of the management system includes simulations of: data centers; clusters;. . . ; data stores;. . . “ in Nico to include hosts and storage clusters as taught by Hiremath.
The motivation would have been to save system resources by simulating testing rather than deploying an expensive and exhaustive hardware ecosystem. See Hiremath page 1:
It is a matter of concern. Since the performance and scale tests are run only once or twice per product/release, it really doesn’t make sense deploying such an expensive and exhaustive hardware ecosystem.
Innominds has deep experience in testing the VDI Infrastructure and DaaS solutions. This includes end-to-end testing along with the infrastructure set up and also benchmarking the performance of VDI.
The vCenter Simulator is an internal simulation tool developed by VMware. It allows simulating several thousands of VMs. This tool requires a resource that is used by VCSA (2vcpu & 8GB memory– a default configuration). It does support some basic vSphere inventory operations such as create/destroy and power operations. The added advantage of this simulator tool is that it can also manage actual hosts and VMs along with the simulated setup
With respect to claim 7, Nico teaches “7. The medium of claim 1, including instructions to create a cloud account for the simulation of the management system” on p. 2:
PNG
media_image2.png
564
883
media_image2.png
Greyscale
(Examiner finds “VMware Cloud on AWS” and corresponding code teaches “instructions to create a cloud account for the simulation of the management system”).
Claim 8-12 and 14 are rejected for the same reasons given above for claim 1-5 and 7 respectively.
Claims 15-19 are rejected for the same reasons given above for claims 1-5 respectively.
Claim(s) 6, 13, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Nico in view of Hiremath as applied to claim 1, 8, and 15 above and further in view of Cochrane, How is Docker different from a virtual machine? 12/29/2020.
With respect to claim 6, it appears Nico et al. fails to explicitly teach “6. The medium of claim 1, wherein the simulation of the management system is deployed within a docker container”
However, Cochrane How is Docker different from a virtual machine? 12/29/2020 teaches “wherein the simulation of the management system is deployed within a docker container” on p. 1
Docker originally used LinuX Containers (LXC), but later switched to runC (formerly known as libcontainer), which runs in the same operating system as its host. This allows it to share a lot of the host operating system resources. Also, it uses a layered filesystem (AuFS) and manage networking.
Cochrane and Nico et al. are analogous art because they are of the same field of endeavor as the claimed invention.
It would have been obvious to one skilled in the art before the effective filing date of the invention to modify the :the simulation of the management system” in Nico et al. to include “within a docker container” as taught by Cochrane.
The motivation would have been speed. See Cochrane page 2
A full virtualized system gets its own set of resources allocated to it, and does minimal sharing. You get more isolation, but it is much heavier (requires more resources). With Docker you get less isolation, but the containers are lightweight (require fewer resources). So you could easily run thousands of containers on a host, and it won't even blink. Try doing that with Xen, and unless you have a really big host, I don't think it is possible. A full virtualized system usually takes minutes to start, whereas Docker/LXC/runC containers take seconds, and often even less than a second,
Claim 13 and 20 are rejected for the same reasons given above for claim 6.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ALBERT M PHILLIPS, III whose telephone number is (571)270-3256. The examiner can normally be reached 10a-6:30pm EST M-F.
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, Ann J Lo can be reached at (571) 272-9767. 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.
/ALBERT M PHILLIPS, III/Primary Examiner, Art Unit 2159
1 See MPEP 2181:
In addition, merely referencing a specialized computer (e.g., a "bank computer"), some undefined component of a computer system (e.g., "access control manager"), "logic," "code," or elements that are essentially a black box designed to perform the recited function, will not be sufficient because there must be some explanation of how the computer or the computer component performs the claimed function.
Internal citations omitted.
2 See id
. . .
((B) the term "means" or "step" or the generic placeholder is modified by functional language, typically, but not always linked by the transition word "for" (e.g., "means for") or another linking word or phrase, such as "configured to"
. . .