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 § 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.
Claim 3, 6, 7 is 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 applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 3 recites “The existing bin and the new bin, respectively, comprise a bin that is […]” in line 1. This limitation identifies the contents of the existing bin and the new bin. Thus, it is unclear if the existing bin and the new bin are combined in some way (i.e., if they are not combined, there should be something like “[they] comprise bins that are adaptive: […]”. If they are combined, it would instead be “[the bins] comprise a single bin that is adaptive […]”) Accordingly, this renders the metes and bounds of the claim indefinite. For the purposes of this examination, it will be considered that they are not combined, and they comprise bins that are adaptive.
Claim 6 recites “the method of Claim 4, further comprising: […] recursively invoking the second process to find a bin; and performing the second process, wherein the server in the second process is the new server.” This limitation describes recursively executing a process, then executing it normally. Thus, it is unclear if the process is recursive or not (and if it is recursive, the description of the function would need some indicator of the function being a recursive one (i.e., something like “then the second (method/step/function) recursively calls itself until [exit condition]”) For the purposes of this examination, it will be considered to be non-recursive in nature (i.e., that when a server isn’t found in the first process, to instantiate a new server that can support it, and performing the second process, wherein the server in the second process is the new server)
Claim 7 recites the limitation "treating the selected bin template as the workload to recursively invoke the second process; recursively invoking the second process; performing the second process […]" in lines 6-. There is insufficient antecedent basis for this limitation in the claim, as the second process is only described in claim 4, while claim 7 is dependent on claim 1. In addition, it has similar issues as claim 6 (inability to tell if recursive or not; recursively invoking a process then invoking it in a non-recursive way) Note that “bin template” is also not common language, or properly defined, and makes the claim even harder to interpret.
Claim 10 recites “the method of Claim 9, further comprising: […] recursively invoking the third process to extend the bin; and performing the third process, wherein the bin in the third process is the parent bin.” This limitation describes recursively executing a process, then executing it normally. Thus, it is unclear if the process is recursive or not (and if it is recursive, the description of the function earlier would need some step that would make it a recursive function (i.e., something like “then the second (method/step/function) recursively calls itself until [exit condition]”) For the purposes of this examination, it will be considered to be non-recursive in nature (i.e., that when the third process is invoked, it is invoked in a non-recursive way.)
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-6, 13-14, and 19-24 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Kumaraswamy (“Bin packing algorithms for virtual machine placement in cloud computing: a review”), hereinafter Kumaraswamy.
Re. Claim 1, Kumaraswamy recites:
A method performed by a network node for adaptive resource dimensioning for a cloud stack having a plurality of virtualization layers with resource dependencies between the plurality of virtualization layers in an infrastructure, the method comprising: (see e.g., page [512], abstract, “The placing of virtual machines among physical machines in Cloud is significant in optimizing Cloud performance. Bin packing based algorithms are most used concept to achieve virtual machine placement (VMP). This paper presents a rigorous survey and comparisons of the bin packing based VMP methods for the Cloud computing environment. Various methods are discussed and the VM placement factors in each methods are analyzed to understand the advantages and drawbacks of each method.”)
assigning a workload to a bin in the infrastructure based on one of: (see e.g., page [515], paragraph [01], “We view the problem of placement of VMs in data centers(DC)s as similar to a BP problem.”)
(i) assign the workload to the bin when the bin has a resource capacity that supports a dimension of the workload, the bin comprising one of an existing bin and an existing sub-bin within the bin, (see e.g., page [515], Algorithm 1, “if Item I with size ai fits in Bin Sj then Place the item ai in Bin Sj”) Note: The quote is in the context of a for loop that iterates over each bin within a for loop that iterates over each vm to insert into a bin.
and (ii) when the resource capacity of the bin is insufficient to support the dimension of the workload (a) create a new bin, the new bin having a dimensioned resource capacity that supports the dimension of the workload, and (b) assign the workload to the new bin having the dimensioned resource capacity that supports the dimension of the workload; (see e.g., page [515], Algorithm 1, “if Item i does not fit in any Bin then Open a new bin and place the item in it.”)
and outputting information representing one of the assigned bin and the assigned new bin for the workload, and a corresponding resource capacity of the assigned bin or the dimensioned resource capacity of the new bin. (see e.g., page [515], paragraph [03], “Authors in [14] introduce a dynamic server and consolidation management algorithm that measures historical data, forecasts future demand and re-maps VMs to PMs. To forecast future demand, time series method is used.”) The dynamic server and consolidation management algorithm is being considered something that would require outputted information, a minimum being of the size of the bins. You can’t predict current demand, much less future demand, without knowing how much demand (i.e., how many resources, i.e., the resource capacity of the bin).
Re. Claim 2, Kumaraswamy recites:
The method of claim 1, further comprising: embedding the workload onto the assigned bin or the assigned new bin in the infrastructure. (see e.g., page [515], algorithm 1, lines 4 and 12 “Place the item ai in Bin Sj. […] Open a new bin and place the item in it”)
Re. Claim 3, Kumaraswamy recites:
The method of Claim 1, wherein: the existing bin and the new bin, respectively, comprise a bin that is adaptive over a period of time to be one or more of a physical server, a virtual machine, a virtualization layer from the plurality of virtualization layers, and an application for the workload or for another workload. (see e.g., page [512], paragraph [01], “In recent years Cloud computing architectures have received an increasing attention due to their great promises in enabling distributed computing paradigm [1]. It provides pool of computing resources enabling the Cloud user’s application to use it.”)
Re. Claim 4, Kumaraswamy recites:
The method of any of Claim 1, wherein the assigning the workload to a bin comprises performing a first process to find a server, the first process including (i) iterating through existing servers to select a server, and (ii) for a selected server, checking whether the selected server can host the workload; (see e.g., page [513], paragraph [03], “In the FF [First Fit], the VM is placed in the PM [Physical Machine, i.e., server] which is selected as first machine with available capacity.”)
and when checking whether the selected server can host the workload, performing a second process to find a bin of the server, the second process including checking whether a bin of the server can support and host the workload and whether the bin has the resource capacity to support the dimension of the workload; (see e.g., page [513], paragraph [03], “In the FF [First Fit], the VM is placed in the PM [Physical Machine, i.e., server] which is selected as first machine with available capacity.”)
and performing one of (i) making the assignment to the bin of the server when the bin of the server has the resource capacity to support the dimension of the workload, and (ii) checking whether there is a sub-bin in the bin of the server that can host the workload when the bin of the server lacks the resource capacity to support the dimension of the workload. (see e.g., page [515], Algorithm 1,
[AltContent: textbox (for i = 1 to n do
for j = 1 to m do
if Item i with size ai fits in Bin Sj then
Place the item ai in Bin Sj.
j ++
end if
if Item i does not fit in Bin Sj then
j ++
end if
end for
if Item i does not fit in any Bin then
Open a new bin and place the item in it.
m=m+1
end if
end for)]
)
Re. Claim 5, Kumaraswamy recites:
[AltContent: textbox (for i = 1 to n do
for j = 1 to m do
if Item i with size ai fits in Bin Sj then
Place the item ai in Bin Sj.
j ++
end if
if Item i does not fit in Bin Sj then
j ++
end if
end for
if Item i does not fit in any Bin then
Open a new bin and place the item in it.
m=m+1
end if
end for)]The method of claim 4, wherein the sub-bin of the server can host the workload, the method further comprising: Checking whether the sub-bin has the resource capacity to support the dimension of the workload; and Wherein the assigning comprises assigning the workload to the sub-bin when the sub-bin has the resource capacity to support the workload. (see e.g., page [515], Algorithm 1,
) For clarification, the above pseudocode describes that, for each task, check every bin to see if the task fits inside. The claim above describes checking each bin, then checking each sub-bin [a sub-set of the bins] to see if it has the proper resource capacity. In both cases, if the job fits in the bin, it is assigned to the bin. This is describing the same process, substantially. Things to consider: 1. A sub-bin is still a bin. No distinctive features have been provided to separate the two in the claims, aside from a vague gesture towards the prefix “sub”. In order to reasonably treat these like separate entities, one could provide some form of distinction or interaction between the two entities (i.e., “a sub-bin is controlled by its parent bin” would necessitate looking for that relationship in the prior art.) As of claim 5, you have two groups of bins that have the same steps performed on them, with no distinction between the groups
Re. Claim 6, Kumaraswamy recites:
The method of Claim 4, further comprising:
When a server is not found in the first process that can host the workload, instantiating a new server that can support the workload; (see e.g., page [513], paragraph [03], “In the FF [First Fit], the VM is placed in the PM [Physical Machine, i.e., server] which is selected as first machine with available capacity.”) (see e.g., page [518], paragraph [07], “Few authors also consider the Next Fit (NF) approach, in which the VM is placed into the current PM (if VM resource demands are satisfied in current PM), otherwise new PM is started.”)
Recursively invoking the second process to find a bin; and performing the second process, wherein the server in the second process is the new server. (see e.g., page [515], Algorithm 1, “for i = 1 to n do for j = 1 to m do| if Item i with size ai fits in Bin Sj then | Place the item ai in Bin Sj. |j ++ |end if |if Item i does not fit in Bin Sj then |j ++ |end if |end for |if Item i does not fit in any Bin then | Open a new bin and place the item in it. | m=m+1 | end if | end for ”) See section “112 rejections” for the interpretation in view of this rejection.
Re. Claim 13, Kumaraswamy recites:
A network node for adaptive resource dimensioning for a cloud stack having a plurality of virtualization layers with resource dependencies between the plurality of virtualization layers in an infrastructure, the network node comprising:
At least one processor;
At least one memory connected to the at least one processor and storing program code that is executed by the at least one processor to perform operations comprising: the method of Claim 1.
Therefore, claim 13 is rejected as being obvious over Kumaraswamy for the same reasons provided pertaining to claim 1.
Claims 14,21-24 recites substantially the same limitations as claim 2,3-6, applied to the network node of claim 13. Therefore, it is rejected as being anticipated by Kumaraswamy for the same reasons provided pertaining to claim 2,3-6.
Re. Claim 19, Kumaraswamy recites:
A computer program product comprising a non-transitory storage medium including program code to be executed by processing circuitry of a network node for a cloud stack having a plurality of virtualization layers with resource dependencies between the plurality of virtualization layers in an infrastructure, whereby execution of the program code causes the network node to perform operations comprising: the method of Claim 1. Therefore, claim 19 is rejected as being obvious over Kumaswamy for the same reasons provided pertaining to claim 1.
Claim 20 recites substantially the same limitation as claim 2, applied to the program product of claim 19. Therefore, it is rejected as being anticipated by Kumaraswamy for the same reasons provided pertaining to claim 2.
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 7 is rejected under 35 U.S.C. 103 as being unpatentable over Kumaraswamy as applied to claims above, and further in view of Burns (“Use VMware vSphere templates to manage VMs at scale”), hereinafter Burns.
Re. Claim 7, Kumaraswamy teaches:
dimensioning a capacity of the bin template to result in the dimensioned resource capacity that supports the dimension of the workload; treating the selected bin template as the workload to recursively invoke the second process; recursively invoking the second process; and performing the second process, wherein the bin in the second process is the new bin. (see e.g., page [515], Algorithm 1, “for i = 1 to n do for j = 1 to m do| if Item i with size ai fits in Bin Sj then | Place the item ai in Bin Sj. |j ++ |end if |if Item i does not fit in Bin Sj then |j ++ |end if |end for |if Item i does not fit in any Bin then | Open a new bin and place the item in it. | m=m+1 | end if | end for ”) See section “112 rejections” for the interpretation in view of this rejection.
Kumaraswamy fails to teach:
The method of any of Claim 1, wherein the create a new bin comprises: selecting a bin template for the workload;
However, Burns teaches:
The method of any of Claim 1, wherein the create a new bin comprises: selecting a bin template for the workload; (see e.g., page [1], paragraph [2], “VMware vSphere 6.5 introduced the Content Libraries feature, which makes templates accessible and manageable across both local and global environments, which also provides consistency and availability for vSphere templates and environments.”)
It would be obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system and method for bin packing VMs as taught by Kumaraswamy to incorporate the VM templates as taught by Burns. One of ordinary skill in the art would be motivated to do this, with a reasonable expectation of success, to enable IT admins and anything they run to “quickly deploy fully configured VMs without reinventing the wheel for each deployment”
Claims 8-12 are rejected under 35 U.S.C. 103 as being unpatentable over Kumaraswamy as applied to claims above, and further in view of Lu (“Application-Driven Dynamic Vertical Scaling of Virtual Machines in Resource Pools”), hereinafter Lu.
Re. Claim 8, Kumaraswamy fails to teach:
The method of Claim 4, further comprising: when the bin in the second process lacks the resource capacity to support the dimension of the workload, performing a third process to extend the bin with an additional resource capacity; and Wherein the assigning comprises assigning the workload to the extended bin.
However, Lu teaches:
The method of Claim 4, further comprising: when the bin in the second process lacks the resource capacity to support the dimension of the workload, performing a third process to extend the bin with an additional resource capacity; and Wherein the assigning comprises assigning the workload to the extended bin. (see e.g., page [06], paragraph [01], “if the current RP reservation can satisfy the total requested reservation, the per-VM requests are granted (line 10); Otherwise, it moves on to resource contention handling.[…] Finally, the requested VM limit is granted (line 20) and the computed VM-level and RP-level settings are returned”) Granting the VM limit is being seen as equivalent to extending the bin with additional capacity if there are lacking resources, with the bonus of also reducing the bin capacity if there are too many resources.
It would be obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system and method for bin packing VMs as taught by Kumaraswamy to incorporate the expanding bin packing method as taught by Lu. One of ordinary skill in the art would be motivated to do this, with a reasonable expectation of success, to provide a method to reduce the need for the laborious and error-prone approaches of keeping VM resources at static or default values. See Lu, page 1, paragraph 5.
Re. Claim 9, Lu recites:
The method of Claim 8, wherein the third process to extend the bin comprises
Checking whether the bin can be extended with the additional resource capacity; and (see e.g., page [05], paragraph [08], “For a resource pool with expandable=false, the user can set modifiable=true for this RP in AppRM”)
Performing one of (i) when the bin can be extended, extending the bin, and (ii) when the bin cannot be extended, checking whether the bin has a parent bin. (see e.g., page [05], paragraph [07], “This is used when the resource pool being managed is expandable. The RP Manager only sets the VM-level reservations and limits as requested by the vApp Manager, without changing the RP-level settings. DRS then expands the RP-level reservation accordingly to accommodate the total demand for the resource pool, while leaving the RP-level limit unchanged.”) (see also e.g., page [05], paragraph [08], “For a resource pool with expandable=false, the user can set modifiable=true for this RP in AppRM, to allow resources to flow from the sibling RPs to this RP in order to satisfy the demand of its child vApps. In this case, the RP Manager modifies the RP-level reservation to be the sum of the requested VM-level reservations, without setting reservations or limits at the VM level. TheRP-level limit is also increased if exceeded.”)
Re. Claim 10, Lu recites:
The method of Claim 9, wherein when the bin has a parent bin, the method further comprising:
Checking whether the parent bin can be extended; When the parent bin can be extended, recursively invoking the third process to extend the bin; and Performing the third process, wherein the bin in the third process is the parent bin. (see e.g., page [01], paragraph [06], “For example, the VMware Distributed Resource Scheduler (DRS) [12] offers an abstraction of a resource pool (RP), a logical container that represents an aggregate resource allocation for a collection of virtual machines. […] Resource control settings can be specified at a VM and an RP level. DRS periodically divides the total capacity of a parent resource pool and distributes it to child VMs or RPs, according to the resource control settings and estimated resource demands of individual VMs and RPs. This allows resources to flow across VMs or RPs in order to achieve better resource utilization”)
Re. Claim 11, Lu recites:
The method of Claim 9, wherein the extending the bin comprises
Calculating the additional resource capacity, wherein the calculating comprises one of (i) when the bin has a virtualization layer, determining a difference between the dimension of the workload and a residual capacity of the bin; and (ii) when the bin lacks a virtualization layer, determining the difference between the dimension of the workload and a residual capacity of the bin, and adding a virtualization overhead to the difference. (see e.g., page [04], paragraph [17], “The resource limit is set to the sum of reservation and buffer size (line 8). The nonzero, adaptive buffer between limit and reservation allows the resource scheduler to adjust runtime allocations if needed.”) (see e.g., page [01], paragraph [06], “For example, the VMware Distributed Resource Scheduler (DRS) [12] offers an abstraction of a resource pool (RP), a logical container that represents an aggregate resource allocation for a collection of virtual machines.”) Lu mentions that their platform is performed using virtualized software (see e.g,. VMs and VMMs). Lu also mentions that the resource limit for a resource pool, when updated, is set to a sum of the currently reserved resource and a buffer size.
Re. Claim 12, Lu recites:
The method of Claim 1, wherein the network node comprises one of an operation support system node and a business support system node. (see e.g., page [02], paragraph [13], “our work differs from prior work in the following aspects: […]Both the global controller in [4] and the node controller in [5] handle the resource requests from individual VMs at the same time and with the same frequency. The RP Manager in AppRM interacts with multiple vApp Managers asynchronously so that each vApp Manager can work at its own pace based on application need.”) For clarification, Lu describes a master node to control each application node manager. This can be considered a “operation support system node” because it is a node in the network that performs operational support for the system it is designed for.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Connor Imiola Blackburn whose telephone number is (571)272-6547. The examiner can normally be reached M-Th 7-5.
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, Kevin Young can be reached at (571) 270 - 3180. 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.
/C.I.B./Examiner, Art Unit 2194 /KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194