DETAILED ACTION
This Office Action is in response to claims filed on 12/31/2025.
Claims 1-13 and 15-21 are pending.
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 .
Response to Arguments
Applicant’s arguments with respect to claims 1, 10, 15 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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 1 is rejected under 35 U.S.C. 103 as being unpatentable over Ciano et al Patent No. US 8,726,275 (hereinafter Ciano) in view of Mukku et al. Patent No. US 10,620,871 B1 (hereinafter Mukku) in view of Shah Pub. No. US 2013/0326505 A1 (hereinafter Shah).
With regard to claim 1, Ciano teaches a method, comprising (Col. 10, lines 46-48, Methods for adaptively cloning a virtual machine in accordance with the embodiments of the invention allow selection of components that are to be cloned):
receiving, by a device associated with a cloud computing environment, a selection of a modified template (Col. 6, lines 35-36, At 300, a parent virtual machine is selected as a template for adaptive cloning), with a cloning agent (Fig. 1, Cloning Engine 102; Col. 2, lines 53-55, System 100 includes a cloning engine 102 for selectively cloning a parent virtual machine 101 into a cloned virtual machine 103), from modified templates stored in a repository (Fig. 2, Virtual Machine Repository 205; Col. 5, lines 41-45, The cloning system further includes a virtual machine repository 205 comprising information about the virtual machines that are to be cloned);
generating, by the device, a modified template clone, with the cloning agent, based on the selection of the modified template (Col. 8, lines 44-53, At 307 and 308, the cloning engine introspects the virtual disks of the parent virtual machine based on the target environment information and based on parent virtual machine information (selective partial cloning and adaptive partial cloning). In adaptive partial cloning mode at 308, the cloning engine further changes the content of the selected virtual disks among the subset of the virtual disks. A modified clone template is created from the selected virtual disk content; Col. 9, lines 17-18, At 310 the virtual machine clone is generated based on the clone templated calculated at 306 to 308);
analyzing, by the device and via the cloning agent, virtual hardware of the cloud computing environment (Col. 3, lines 2-16, Virtual hardware 1011 refers to the hardware resources allocated to the parent virtual machine 101 and is mapped to hardware platform 106. The virtual hardware 1011 comprises one or more virtual disks 110. Virtual disks 110 are stored as files on the host computer or on a remote storage device, and appear to the guest operating systems as standard disk drives. The virtual hardware 1011 further comprises at least one configuration file 111 that contains information about the operating system, disk types, networking and other system data. It may also contain additional tags that can be used for application specific purposes) …;
identifying, by the device and via the cloning agent, the cloud computing environment (Col. 2, lines 11-15, Cloning is further performed by identifying a target environment on which the clone is to run) …;
determining, by the device and via the cloning agent, one or more application programming interfaces based on identification of the cloud computing environment (Col. 4, lines 4-16, The cloning requests may be received from a virtual management center managing the virtual machines belonging to the computer system. Alternatively, cloning requests may be received by using local or remote predefined commands specific to the virtualization technology such as VMware VIX API for VMware technology …, or by using predefined Application Programming Interfaces (APIs), depending on the virtualization technology; Col. 4, line 34-38, The information related to the parent virtual machine may be retrieved (by predefined API) from at least one configuration file that depends on the virtualization technology. For example, the VMware vmx configuration file may be used for VMware technology);
utilizing, by the device and via the cloning agent, the one or more application programming interfaces to obtain configuration data (Col. 6-Col. 7, lines 62-67 and lines 1-3, Alternatively, retrieval at 301 may be performed by using predefined Application Programming Interface(s) for introspecting virtual file systems offline depending on the virtualization technology. Such application programming interfaces use discovery mechanisms to discover software applications installed in the virtual machine. According to yet another embodiment of the invention, retrieval at 301 may be performed by retrieving information from the virtual machine configuration file(s)) (Col. 6-Col. 7, lines 62-67 and lines 1-3, Alternatively, retrieval at 301 may be performed by using predefined Application Programming Interface(s) for introspecting virtual file systems offline depending on the virtualization technology. Such application programming interfaces use discovery mechanisms to discover software applications installed in the virtual machine. According to yet another embodiment of the invention, retrieval at 301 may be performed by retrieving information from the virtual machine configuration file(s));
configuring, by the device and via the cloning agent, a virtual machine of the modified template clone, based on the configuration data and to generate a configured virtual machine (Col. 9, lines 17-35, A 310, the virtual machine clone is then generated based on the clone template calculated at 306 to 308. To generate the clone, the cloning engine may first initiate preparation for cloning. To prepare for cloning, the cloning engine 102 may notify the selected parent virtual machine to prepare for cloning. For example, the cloning engine 102 may access an application program interface at the parent virtual machine and notify the selected template virtual machine to prepare for cloning. The clone preparation phase may also initiate a deactivation of the parent virtual machine so that it does not accept any additional requests for cloning. Once the parent virtual machine notifies that the selective cloning can take place, the cloning engine 102 can initiate the selective cloning of the parent virtual machine. To start the partial cloning of the virtual machine, the cloning engine may instruct the hypervisor 105 of the parent virtual machine to migrate (or copy) a part of running virtual machine corresponding to the modified template to another virtual machine at the target hypervisor), …; and
enabling, by the device, the configured virtual machine to be utilized (Col. 9, 35-39, The cloning engine may also generate a message to enable use of the cloned virtual machine in the target environment and notify the hypervisor 106 of the parent virtual machine to reactivate the selected parent virtual machine so that it can be used as a template for a new clone).
Ciano reasonably teaches the method of analyzing the virtual hardware and identifying the cloud computing environment. However, However, Ciano may not explicitly teach the method of utilizing fingerprints of virtual hardware for comparison with additional virtual hardware fingerprints associated with additional cloud environments.
Mukku teaches analyzing … virtual hardware of the cloud computing environment to generate fingerprints of the virtual hardware (Col. 7, pg. 44-54, A mapping table 300 may be maintained for a logical storage volume or portion of a logical volume assigned to a storage unit … The mapping table 300 may be maintained in other storage associated with a computing resource, e.g., virtual machine or container, executing on a cloud computing platform 112; Col. 8, lines 4-8, Each segment may be identified by an identifier (Examiner notes: a fingerprint). In the illustrated embodiment, the identifier is a virtual segment identifier (VSID) 302. For example, each time a segment of a virtual storage volume is allocated, it may be assigned a VSID 302)
identifying … the cloud computing environment (Col. 14, lines 51-59, The method 800 may include receiving 802, by the agent module 700, a read request from a sole instance 222. The read request may include identifiers of a logical storage volume, slice of a storage volume, and LBA within the slice from which data is to be read. The method 800 may then include identifying 804, by the agent module 700, the tier ID of the computing platform storing the segment) based on comparing the fingerprints of the virtual hardware to stored virtual hardware fingerprints associated with a plurality of cloud computing environments (Col. 13, lines 55-67, The method 600 may then include executing the application on the new computing platform such that the role instances 222 of the restored application access 612 the segments of the logical storage volumes using the one or more mapping tables 300. As segments are accessed, they may also be migrated 614 to the new computing platform … its entry in the mapping table 300 for that slice may be updated such that the write unit 304 refers to the unit of storage identifying where the segment is stored in the storage resources of the new computing platform (e.g., physical segment or virtual segment identifier of a cloud computing platform))
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Mukku with the teachings of Ciano in order to provide a method that teaches generation and identification of a plurality of hardware fingerprints associated with a plurality of cloud computing environments. The motivation for applying Mukku teaching with Ciano teaching is to provide a method that allows for an enterprise to utilize a computing platform of its chocice to implement data-heavy applications (Mukku, Col. 1). Ciano and Mukku are analogous art directed towards virtual machine management. Therefore, it would have been obvious for one of ordinary skill in the art to combine Mukku with Ciano to teach the claimed invention in order to provide generation and identification of fingerprints in association with a cloud computing environment enabling deployment across a plurality of cloud environments.
The combination reasonably teaches the performance of a cloning agent. However, it does not explicitly teach that the cloning agent configures the virtual machine from within an operating system for the virtual machine.
Shah teaches wherein the cloning agent configures the virtual machine from within an operating system for the virtual machine (FIG. 1, VM 131 comprising a Guest OS 133 and Guest Agent 135; [0016], Each virtual machine 131 includes a guest operating system (guest OS) 133 that may be different from one virtual machine to another; [0019], Some of the virtual machines 131 may also include a guest agent 135; [0020], In one embodiment, the guest agent 135 may update and/or reconfigure a VM 131. For example, the guest agent 135 may add and/or change one or more virtual hardware components (e.g., disk drivers, network interface cards, disk controllers, memory, video cards, sound cards, etc.) based on data received from the VM manager)
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Shah with the teachings of Ciano and Mukku in order to provide a method that teaches a cloning agent performing virtual machine configurations within the operating system of the virtual machine. The motivation for applying Shah teaching with Ciano and Mukku teaching is to provide a method that allows for a host controller to identify faster, more efficient and optimal virtual hardware which a virtual machine may be able to use (Shah, [0013]). Ciano, Mukku, and Shah are analogous art directed towards virtual machine management. Therefore, it would have been obvious for one of ordinary skill in the art to combine Shah with Ciano and Mukku to teach the claimed invention in order to provide an efficient means for applying configurations to virtual machines.
Claims 2-4 are rejected under 35 U.S.C. 103 as being unpatentable over Ciano in view of Mukku in view of Shah as applied to claim 1 above, and further in view of Anerousis et al. Patent No. US 9,426,030 B1 (hereinafter Anerousis).
With regard to claim 2, Ciano teaches the method of claim 1, further comprising:
receiving, from the other device, a plurality of modified templates that include the cloning agent (Col 5, lines 41-49, The cloning engine 102 is adapted to clone a selected virtual machine 101 from a source virtual environment into a cloned virtual machine 103 to a target location 22 in the target virtual environment 200, based on information captured from the environment; Col. 6, lines 40-44, At 301 the cloning engine 102 retrieves from repository 205, the list of software applications (or software products) installed in the parent virtual machine. The cloning engine 102 also retrieves the relation between the software applications and the virtual machine virtual disks);
However, Ciano may not explicitly teach the method of providing of templates for virtual machines or storing of templates in the repository.
Anerousis teaches providing, to another device, a plurality of base templates for virtual machines to be implemented in the cloud computing environment (Col. 6, lines 1-6, Responsive to a user 112, for example, a system administrator requesting deployment of a computing component, for example, a server or infrastructure in the cloud environment, templates stored in the template database 108 may be retrieved and additional configurations mined for configuring the user specific requirements);
…
storing the plurality of modified templates in the repository (Col. 7, lines 16-24, At 206, one or more base templates may be created using the classified configuration templates. For instance, a base template for different types of deployment (e.g. web service deployment, database service deployment, another application deployment, and/or others) may be generated from the classified configuration templates the configurations contained therein. The base templates may be stored in a storage device).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Anerousis with the teachings of Ciano, Mukku, and Shah in order to provide a method that teaches the transmission and storage of virtual machine templates. The motivation for applying Anerousis teaching with Ciano, Mukku, and Shah teaching is to provide a method that allows for base templates to be selected and modified, thereby enabling rapid provisioning of custom virtual machine instances targeted across different environments (Anerousis, Col. 5). Ciano, Mukku, Shah, and Anerousis are analogous art directed towards configuration settings using templates. Therefore, it would have been obvious for one of ordinary skill in the art to combine Anerousis with Ciano, Mukku, and Shah to teach the claimed invention in order to provide streamlined deployment process of custom virtual machine instances from templates.
With regard to claim 3, Anerousis teaches the method of claim 2, wherein providing the plurality of base templates causes the other device to generate the plurality of modified templates that include the cloning agent (Col. 8, lines 21-29, At 212, a plurality of customized or proprietary candidate template may be generated by adding a sequence of configurations mined at 210 to the base template. For example, this template becomes a proprietary template specifically used for the use with additional requirements. FIG. 4 shows an example of a complete proprietary template with additional features at the end. Multiple proprietary candidate templates may be generated, for example, by adding different sequences of configurations to the base template).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Anerousis with the teachings of Ciano, Mukku, and Shah in order to provide a method that teaches the generation of modified templates. The motivation for applying Anerousis teaching with Ciano, Mukku, and Shah teaching is to provide a method that allows for reconfiguration of base templates in accordance to user input, thereby allowing additional features to be added to meet user specific requirements (Anerousis, Col. 6). Ciano, Mukku, Shah, and Anerousis are analogous art directed towards configuration settings using templates. Therefore, it would have been obvious for one of ordinary skill in the art to combine Anerousis with Ciano, Mukku, and Shah to teach the claimed invention in order to provide user-specified generation of modified templates.
With regard to claim 4, Ciano teaches the method of claim 2, wherein receiving the selection of the modified template comprises:
receiving the selection of the modified template from the plurality of modified templates stored in the repository (Col. 6, lines 35-44, At 300, a parent virtual machine is selected as a template for adaptive cloning. The parent virtual machine may be retrieved from an external repository. The parent virtual machine is composed of virtual disk files and virtual machine configuration files. At 301, the cloning engine 102 retrieves from repository 205, the list of software applications (or software products) installed in the parent virtual machine. The cloning engine 102 also retrieves the relation between the software applications and the virtual machine virtual disks).
Claim 5 is rejected under 35 U.S.C. 103 as being unpatentable over Ciano in view of Mukku in view of Shah as applied to claim 1 above, and further in view of Le et al. Patent No. US 7,356,679 B1 (hereinafter Le).
With regard to claim 5, Le teaches the method of claim 1, wherein analyzing the virtual hardware of the cloud computing environment to generate the fingerprints of the virtual hardware comprises:
analyzing basic input/output system data associated with cloud computing environment (Col. 4-Col. 5, lines 66-67 and lines 1-11, Since the file system driver itself is a file on the file system, one may wonder how it could be extracted from the file system in the first place, when no driver is loaded. Every type of operating system has a different way of addressing this issue. One possible solution is to store the sector offset corresponding to the beginning of the contents of the driver file in a special sector not used by the file system, such as a master boot record (MBR). When the operating system first loads, it could use the services of the computer’s BIOS (basic input/output system) to read the sector offset from the special sector, then load the driver file’s contents into memory, and then execute the driver’s code in order to decode the entire filesystem (wherein fingerprint data associated with the device in cloud computing environment can be found)).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Le with the teachings of Ciano, Mukku, and Shah in order to provide a method that teaches the capabilities of the basic input/output system (BIOS) for analyzing data of hardware-level devices with respect to generating fingerprint data. The motivation for applying Le teaching with Ciano, Mukku, and Shah teaching is to provide a method that allows for the BIOS to manage I/O operations, enabling the retrieval of a registry file of device drivers specifying connected hardware components and associated identifiers (Le, Col. 36). Ciano, Mukku, Shah, and Le are analogous art directed towards virtual machine management. Therefore, it would have been obvious for one of ordinary skill in the art to combine Le with Ciano, Mukku, and Shah to teach the claimed invention in order to provide BIOS analysis to enhance hardware visibility.
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Ciano in view of Mukku in view of Shah as applied to claim 1 above, and further in view of Singh et al. Pub. No. US 2020/0077265 A1 (hereinafter Singh).
With regard to claim 6, the combination does not explicitly teach fingerprints of virtual hardware comprising identification of data of one or more components.
However, Singh teaches the device of claim 1, wherein the fingerprints of the virtual hardware include data identifying one or more of ([0011], Utilizing the plurality of hardware parameters to determine a hardware fingerprint of the user device):
a network card associated with the cloud computing environment,
a basic input/output system vendor associated with the cloud computing environment ([0249], BIO Serial Number),
a product name associated with the cloud computing environment ([0252], Product UDID),
a manufacturer associated with the cloud computing environment ([0220], Manufacturer’s Serial Number),
an asset tag number associated with the cloud computing environment ([0218], CPU ID),
a serial number associated with the cloud computing environment ([0213], enrollment identifiers, e.g., a combined value of these identifiers can be used for enrollment to a cloud service, such as through the cloud-based systems, 100, 500, 550), or
a chassis identifier associated with the cloud computing environment. ([0215], 9.1 Device Hardware Fingerprint; [0216], Again, the present disclosure includes a hardware fingerprint that is generated utilizing a set of parameters)
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Singh with the teachings of Ciano, Mukku, and Shah in order to provide a method that teaches the specific hardware attributes associated with the fingerprints of the virtual hardware. The motivation for applying Singh teaching with Ciano, Mukku, and Shah teaching is to provide a method that allows for a plurality of unique device fingerprints to be used in identification, such that the combination of device fingerprints becomes tediously difficult to spoof or reverse engineer (Singh, [0216]). Ciano, Mukku, Shah, and Singh are analogous art directed towards virtual machine management. Therefore, it would have been obvious for one of ordinary skill in the art to combine Singh with Ciano, Mukku, and Shah to teach the claimed invention in order to provide a plurality of unique device fingerprints to be used for identification.
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Ciano in view of Mukku in view of Shah as applied to claim 1 above, and further in view of Zarfoss, III et al. Patent No. US 8,838,961 B2 (hereinafter Zarfoss).
With regard to claim 7, Ciano teaches the method of claim 1, wherein the one or more application programming interface (Col. 6, lines 62-65, Alternatively, retrieval at 301 may be performed by using predefined Application Programming Interface(s) for introspecting virtual file systems offline depending on the virtualization technology)
However, Ciano does not explicitly teach that the application programming interface is specified to obtain an instance identifier or network location associated with a virtual machine.
Zarfoss teaches include a metadata (Col. 6, lines 2-11, Such metadata could include, for example, a unique virtual machine identifier assigned to deployed virtual machine and network information associated with the deployed virtual machine (e.g., a network address assigned to the deployed virtual machine). Additionally, or in lieu of the virtual machine instance identifier and the network information, the metadata could include a label of the virtual machine image, a location where the virtual machine image is deployed, a timestamp of the virtual machine deployment, and so on) application programming interface configured to obtain (Col. 5, lines 1-5, Upon receiving the request (application programming interface), the cryptex server could be configured to retrieve metadata associated with the virtual machine identifier and to authenticate the deployed virtual machine instance using the retrieved metadata) an instance identifier associated with the virtual machine (Col. 4-Col. 5, lines 63-67 and line 1, For instance, a cloud management system could assign a unique virtual identifier to each virtual machine instance deployed within the cloud, and the request transmitted to the cryptex server could specify the virtual machine instance identifier for the virtual machine instance into which the encrypted security credential was inserted) and a network location associated with the virtual machine (Col. 5, lines 5-15, As an example, the cryptex server could query a cloud management system to determine a network address (e.g., an Internet Protocol (IP) address within the cloud network) associated with the virtual machine instance identifier specified in the request).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Zarfoss with the teachings of Ciano, Mukku, and Shah in order to provide a method that teaches a metadata application programming interface (API) as the communication protocol to retrieve virtual machine instance identification and network location data. The motivation for applying Zarfoss teaching with Ciano, Mukku, and Shah teaching is to provide a method that allows for a retrieval of specific virtual machine metadata, thereby enabling the usage of the metadata to perform services, such as authentication (Zarfoss, Col. 5). Ciano, Mukku, Shah, and Zarfoss are analogous art directed towards cloud computing architectures and communication protocols. Therefore, it would have been obvious for one of ordinary skill in the art to combine Zarfoss with Ciano, Mukku, and Shah to teach the claimed invention in order to provide metadata requests to obtain virtual machine instance identification and network location to specify services to be performed.
Claims 8, 10-17, and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Ciano et al Patent No. US 8,726,275 (hereinafter Ciano) in view of Mukku et al. Patent No. US 10,620,871 B1 (hereinafter Mukku) in view of Anerousis et al. Patent No. US 9,426,030 B1 (hereinafter Anerousis).
With regard to claim 8, Ciano teaches a device, comprising (Col. 2, lines 51-53, FIG. 1 shows a system 100 for selectively cloning virtual machines in a virtual computer environment, in accordance with certain embodiments of the invention):
one or more processors configured to (Col. 2, lines 58-64, The host hardware platform 106 may include one or more processor(s), memory, storage devices, and disk drives … The hardware platform 106 may exist within one or more distinct physical device or machines of system 100):
…
receive, from the other device, a plurality of modified templates the include a cloning agent (Col. 6, lines 40-44, At 301 the cloning engine 102 retrieves from repository 205, the list of software applications (or software products) installed in the parent virtual machine. The cloning engine 102 also retrieves the relation between the software applications and the virtual machine virtual disks);
…
receive a selection of a modified template (Col. 6, lines 35-36, At 300, a parent virtual machine is selected as a template for adaptive cloning), with the cloning agent (Fig. 1, Cloning Engine 102; Col. 2, lines 53-55, System 100 includes a cloning engine 102 for selectively cloning a parent virtual machine 101 into a cloned virtual machine 103), from the plurality of modified templates stored in repository (Fig. 2, Virtual Machine Repository 205; Col. 5, lines 41-45, The cloning system further includes a virtual machine repository 205 comprising information about the virtual machines that are to be cloned; Col. 6, lines 36-39, The parent virtual machine may be retrieved from an external repository. The parent virtual machine is composed of virtual disk files and virtual machine configuration files);
generate a modified template clone, with the cloning agent, based on the selection of the modified template (Col. 8, lines 44-53, At 307 and 308, the cloning engine introspects the virtual disks of the parent virtual machine based on the target environment information and based on parent virtual machine information (selective partial cloning and adaptive partial cloning). In adaptive partial cloning mode at 308, the cloning engine further changes the content of the selected virtual disks among the subset of the virtual disks. A modified clone template is created from the selected virtual disk content; Col. 9, lines 17-18, At 310 the virtual machine clone is generated based on the clone templated calculated at 306 to 308);
analyze, via the cloning agent, virtual hardware of the cloud computing environment … (Col. 3, lines 2-16, Virtual hardware 1011 refers to the hardware resources allocated to the parent virtual machine 101 and is mapped to hardware platform 106. The virtual hardware 1011 comprises one or more virtual disks 110. Virtual disks 110 are stored as files on the host computer or on a remote storage device, and appear to the guest operating systems as standard disk drives. The virtual hardware 1011 further comprises at least one configuration file 111 that contains information about the operating system, disk types, disk sizes, networking and other system data. It may also contain additional tags that can be used for application specific purposes);
identify, via the cloning agent, the cloud computing environment … (Col. 2, lines 11-15, Cloning is further performed by identifying a target environment on which the clone is to run, retrieving information about the target environment and calculating a clone of the virtual machine based at least in part, upon retrieved information);
determine, via the cloning agent, one or more application programming interfaces based on identification of the cloud computing environment (Col. 4, lines 4-16, The cloning requests may be received from a virtual management center managing the virtual machines belonging to the computer system. Alternatively, cloning requests may be received by using local or remote predefined commands specific to the virtualization technology such as VMware VIX API for VMware technology …, or by using predefined Application Programming Interfaces (APIs), depending on the virtualization technology; Col. 4, line 34-38, The information related to the parent virtual machine may be retrieved (by predefined API) from at least one configuration file that depends on the virtualization technology. For example, the VMware vmx configuration file may be used for VMware technology);
utilize, via the cloning agent, the one or more application programming interfaces to obtain configuration data (Col. 6-Col. 7, lines 62-67 and lines 1-3, Alternatively, retrieval at 301 may be performed by using predefined Application Programming Interface(s) for introspecting virtual file systems offline depending on the virtualization technology. Such application programming interfaces use discovery mechanisms to discover software applications installed in the virtual machine. According to yet another embodiment of the invention, retrieval at 301 may be performed by retrieving information from the virtual machine configuration file(s));
configure, via the cloning agent, a virtual machine of the modified template clone, based on the configuration data and to generate configured virtual machine (Col. 9, lines 17-35, A 310, the virtual machine clone is then generated based on the clone template calculated at 306 to 308. To generate the clone, the cloning engine may first initiate preparation for cloning. To prepare for cloning, the cloning engine 102 may notify the selected parent virtual machine to prepare for cloning. For example, the cloning engine 102 may access an application program interface at the parent virtual machine and notify the selected template virtual machine to prepare for cloning. The clone preparation phase may also initiate a deactivation of the parent virtual machine so that it does not accept any additional requests for cloning. Once the parent virtual machine notifies that the selective cloning can take place, the cloning engine 102 can initiate the selective cloning of the parent virtual machine. To start the partial cloning of the virtual machine, the cloning engine may instruct the hypervisor 105 of the parent virtual machine to migrate (or copy) a part of running virtual machine corresponding to the modified template to another virtual machine at the target hypervisor); and
enable the configured virtual machine to be utilized (Col. 9, 35-39, The cloning engine may also generate a message to enable use of the cloned virtual machine in the target environment and notify the hypervisor 106 of the parent virtual machine to reactivate the selected parent virtual machine so that it can be used as a template for a new clone).
Ciano reasonably teaches the method of analyzing the virtual hardware and identifying the cloud computing environment. However, However, Ciano may not explicitly teach the method of utilizing fingerprints of virtual hardware for comparison with additional virtual hardware fingerprints associated with additional cloud environments.
Mukku teaches analyzing … virtual hardware of the cloud computing environment to generate fingerprints of the virtual hardware (Col. 7, pg. 44-54, A mapping table 300 may be maintained for a logical storage volume or portion of a logical volume assigned to a storage unit … The mapping table 300 may be maintained in other storage associated with a computing resource, e.g., virtual machine or container, executing on a cloud computing platform 112; Col. 8, lines 4-8, Each segment may be identified by an identifier (Examiner notes: a fingerprint). In the illustrated embodiment, the identifier is a virtual segment identifier (VSID) 302. For example, each time a segment of a virtual storage volume is allocated, it may be assigned a VSID 302)
identifying … the cloud computing environment (Col. 14, lines 51-59, The method 800 may include receiving 802, by the agent module 700, a read request from a sole instance 222. The read request may include identifiers of a logical storage volume, slice of a storage volume, and LBA within the slice from which data is to be read. The method 800 may then include identifying 804, by the agent module 700, the tier ID of the computing platform storing the segment) based on comparing the fingerprints of the virtual hardware to stored virtual hardware fingerprints associated with a plurality of cloud computing environments (Col. 13, lines 55-67, The method 600 may then include executing the application on the new computing platform such that the role instances 222 of the restored application access 612 the segments of the logical storage volumes using the one or more mapping tables 300. As segments are accessed, they may also be migrated 614 to the new computing platform … its entry in the mapping table 300 for that slice may be updated such that the write unit 304 refers to the unit of storage identifying where the segment is stored in the storage resources of the new computing platform (e.g., physical segment or virtual segment identifier of a cloud computing platform)) which is substantially similar to claim 1, and therefore rejected with similar rationale.
Examiner notes: It would have been obvious for one of ordinary skill in the art to recognize that the limitations of claim 8 are being recited again as a system for the method of claim 1.
However, the combination may not explicitly teach the system of providing of templates for virtual machines or storing of templates in the repository.
Anerousis teaches provide, to another device, a plurality of base templates for virtual machines to be implemented in a cloud computing environment associated with the device (Col. 6, lines 1-6, Responsive to a user 112, for example, a system administrator requesting deployment of a computing component, for example, a server or infrastructure in the cloud environment, templates stored in the template database 108 may be retrieved and additional configurations mined for configuring the user specific requirements);
…
store the plurality of the modified templates in a repository (Col. 7, lines 16-24, At 206, one or more base templates may be created using the classified configuration templates. For instance, a base template for different types of deployment (e.g. web service deployment, database service deployment, another application deployment, and/or others) may be generated from the classified configuration templates the configurations contained therein. The base templates may be stored in a storage device) is substantially similar to claim 2, and therefore rejected with similar rationale.
Examiner notes it would have been obvious for one of ordinary skill in the art to recognize that the limitations of claim 8 are being recited again as a system of the method of claim 2.
With regard to claim 10, Anerousis teaches the device of claim 8, wherein the one or more processors, to configure the virtual machine of the modified template clone, are configured to:
configure the virtual machine of the modified template clone to operate in the cloud computing environment (Col. 3, lines 2-6, Configuration templates include predefined configurations that can be used to set up services of a cloud, a computing environment comprising a shared pool of configurable computing resources, for example, build an image); and
configure an operating system for the virtual machine of the modified template clone (Col. 3, lines 6-11, A configuration template may contain particular configuration details associated with a type of a computing infrastructure, operating systems, and middleware or application information such as those that host a website (a web server), data base server, application server, and/or others. Configuration templates may also include predefined security configuration, monitoring configuration, scaling group for load balancing and web services).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Anerousis with the teachings of Ciano and Mukku in order to provide a system that teaches template configuration of an operating system and cloud computing environment. The motivation for applying Anerousis teaching with Ciano and Mukku teaching is to provide a system that allows for templates to leverage the advantages provided by cloud computing (Anerousis, Col. 4), including operating system distributions configured to cloud computing environments (Anerousis, Col. 3). Ciano, Mukku, and Anerousis are analogous art directed towards configuration settings using templates. Therefore, it would have been obvious for one of ordinary skill in the art to combine Anerousis with Ciano and Mukku to teach the claimed invention in order to provide templates configured to leverage cloud computing and cloud-optimized operating systems.
With regard to claim 11, Ciano teaches the device of claim 8, wherein the one or more processors are further configured to:
receive another (Fig. 4 shows a simplified view of an exemplary virtual architecture 400 comprising a parent virtual machine 41 and two clones 42 and 43 generated from the parent virtual machine 41 using a cloning method according to the embodiment of the invention set out in greater detail herein) selection (Col. 6, lines 35-36, At 300, a parent virtual machine is selected as a template for adaptive cloning) of another modified template with the cloning agent (Fig. 1, Cloning Engine 102; Col. 2, lines 53-55, System 100 includes a cloning engine 102 for selectively cloning a parent virtual machine 101 into a cloned virtual machine 103);
generate another modified template clone, with the cloning agent, based on the other selection of the other modified template (Col. 8, lines 44-53, At 307 and 308, the cloning engine introspects the virtual disks of the parent virtual machine based on the target environment information and based on parent virtual machine information (selective partial cloning and adaptive partial cloning). In adaptive partial cloning mode at 308, the cloning engine further changes the content of the selected virtual disks among the subset of the virtual disks. A modified clone template is created from the selected virtual disk content; Col. 9, lines 17-18, At 310 the virtual machine clone is generated based on the clone templated calculated at 306 to 308);
analyze, via the cloning agent, the virtual hardware of the clouding computing environment … (Col. 3, lines 2-16, Virtual hardware 1011 refers to the hardware resources allocated to the parent virtual machine 101 and is mapped to hardware platform 106. The virtual hardware 1011 comprises one or more virtual disks 110. Virtual disks 110 are stored as files on the host computer or on a remote storage device, and appear to the guest operating systems as standard disk drives. The virtual hardware 1011 further comprises at least one configuration file 111 that contains information about the operating system, disk types, disk sizes, networking and other system data. It may also contain additional tags that can be used for application specific purposes);
identify, via the cloning agent, the cloud computing environment … (Col. 2, lines 11-15, Cloning is further performed by identifying a target environment on which the clone is to run, retrieving information about the target environment and calculating a clone of the virtual machine based at least in part, upon retrieved information);
determine, via the cloning agent, the one or more application programming interfaces based on identification of the cloud computing environment (Col. 4, lines 4-16, The cloning requests may be received from a virtual management center managing the virtual machines belonging to the computer system. Alternatively, cloning requests may be received by using local or remote predefined commands specific to the virtualization technology such as VMware VIX API for VMware technology …, or by using predefined Application Programming Interfaces (APIs), depending on the virtualization technology; Col. 4, line 34-38, The information related to the parent virtual machine may be retrieved (by predefined API) from at least one configuration file that depends on the virtualization technology. For example, the VMware vmx configuration file may be used for VMware technology);
utilize, via the cloning agent, the one or more application programming interfaces to obtain additional configuration data (Col. 6-Col. 7, lines 62-67 and lines 1-3, Alternatively, retrieval at 301 may be performed by using predefined Application Programming Interface(s) for introspecting virtual file systems offline depending on the virtualization technology. Such application programming interfaces use discovery mechanisms to discover software applications installed in the virtual machine. According to yet another embodiment of the invention, retrieval at 301 may be performed by retrieving information from the virtual machine configuration file(s));
configure, via the cloning agent, another virtual machine of the other modified template clone, based on the additional configuration data and to generate another configured virtual machine (Col. 9, lines 17-35, A 310, the virtual machine clone is then generated based on the clone template calculated at 306 to 308. To generate the clone, the cloning engine may first initiate preparation for cloning. To prepare for cloning, the cloning engine 102 may notify the selected parent virtual machine to prepare for cloning. For example, the cloning engine 102 may access an application program interface at the parent virtual machine and notify the selected template virtual machine to prepare for cloning. The clone preparation phase may also initiate a deactivation of the parent virtual machine so that it does not accept any additional requests for cloning. Once the parent virtual machine notifies that the selective cloning can take place, the cloning engine 102 can initiate the selective cloning of the parent virtual machine. To start the partial cloning of the virtual machine, the cloning engine may instruct the hypervisor 105 of the parent virtual machine to migrate (or copy) a part of running virtual machine corresponding to the modified template to another virtual machine at the target hypervisor); and
enable the other configured virtual machine to be utilized (Col. 9, 35-39, The cloning engine may also generate a message to enable use of the cloned virtual machine in the target environment and notify the hypervisor 106 of the parent virtual machine to reactivate the selected parent virtual machine so that it can be used as a template for a new clone).
However, Ciano may not explicitly teach the method of utilizing fingerprints of virtual hardware. Ciano does teach the method of analyzing the virtual hardware and identifying the cloud computing environment, but does not explicitly teach generating fingerprints of virtual hardware or identification based on fingerprints of virtual hardware
Mukku teaches analyzing … virtual hardware of the cloud computing environment to generate fingerprints of the virtual hardware (A mapping table 300 may be maintained for a logical storage volume or portion of a logical volume assigned to a storage unit … The mapping table 300 may be maintained in other storage associated with a computing resource, e.g., virtual machine or container, executing on a cloud computing platform 112; Each segment may be identified by an identifier (Examiner notes: a fingerprint). In the illustrated embodiment, the identifier is a virtual segment identifier (VSID) 302. For example, each time a segment of a virtual storage volume is allocated, it may be assigned a VSID 302)
identifying … the cloud computing environment (The method 800 may include receiving 802, by the agent module 700, a read request from a sole instance 222. The read request may include identifiers of a logical storage volume, slice of a storage volume, and LBA within the slice from which data is to be read. The method 800 may then include identifying 804, by the agent module 700, the tier ID of the computing platform storing the segment) based on comparing the fingerprints of the virtual hardware (The method 600 may then include executing the application on the new computing platform such that the role instances 222 of the restored application access 612 the segments of the logical storage volumes using the one or more mapping tables 300. As segments are accessed, they may also be migrated 614 to the new computing platform … its entry in the mapping table 300 for that slice may be updated such that the write unit 304 refers to the unit of storage identifying where the segment is stored in the storage resources of the new computing platform (e.g., physical segment or virtual segment identifier of a cloud computing platform)) which is substantially similar to claim 8, and therefore rejected with similar rationale.
Examiner notes: It would have been obvious for one of ordinary skill in the art to recognize that the limitations of claim 11 are being performed again as the method of claim 8.
With regard to claim 12, Anerousis teaches the device of claim 8, wherein the one or more processors, to enable the configured virtual machine to be utilized, are configured to:
enable a user device to utilize the configured virtual machine (Fig. 2, “Deploy infrastructure, virtual machines, contains, middlewares, applications, etc.” 216 flows to “Configure the network elements such as gateways, hypervisors, container hosts” 218 which subsequently serves the configured virtual machine to the user who made the request in 208; Col. 9, lines 33-40, Referring to FIG. 2, at 216 deployment is performed by running or executing the template at 214. For instance, one or more of infrastructure, virtual machines, container, middlewares, and/or applications may be deployed per user request. At 218, additional system configurations may be performed. For example, network elements such as gateways, hypervisors, container hosts may be configured).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Anerousis with the teachings of Ciano, Mukku, and Shah in order to provide a system that teaches enablement of the configured virtual machine to a user device. The motivation for applying Anerousis teaching with Ciano, Mukku, and Shah teaching is to provide a system that allows for configured computing resources in accordance with the needs of a user to be provisioned (Anerousis, Col. 1). Ciano, Mukku, Shah and Anerousis are analogous art directed towards configuration settings using templates. Therefore, it would have been obvious for one of ordinary skill in the art to combine Anerousis with Ciano, Mukku, and Shah to teach the claimed invention in order to provide configured computing resources to a requesting user.
With regard to claim 13, Ciano teaches the device of claim 8, wherein the configured virtual machine includes a configured virtual compute instance (Col. 1, lines 44-50, For example, a company department can generate a clone instance of a virtual machine (wherein a virtual machine is identified as a virtual instance) for each employee within the department, such that each virtual machine includes a suite of preconfigured office applications (wherein a configuration is specified). As another example, a teacher can clone a virtual machine to create a clone instance for each student, where each clone includes all the lessons and labs (a distinct configuration) required for a school term).
With regard to claim 21, Ciao teaches wherein the cloning agent identifies the cloud computing environment (Col. 2, lines 11-15, Cloning is further performed by identifying a target environment which the clone is to run, retrieving information about the target environment and calculating a clone of the virtual machine based, at least in part, upon retrieved information)
However, Ciano does not explicitly teach that cloning agent makes this identification of the cloud computing environment after the modified template clone is generated.
Anerousis teaches after the modified template clone is generated (Col. 8, lines 21-25, At 212, a plurality of customized or proprietary candidate templates may be generated by adding a sequence of configuration mined at 210 to the base template; Col. 8, lines 30-31, At 214 among all of the plurality of candidate templates generated at 212, an optimal installation template is selected; Col. 9, lines 33-37, Referring to FIG. 2, at 216 deployment is performed by running or executing the template selected at 214. For instance, one or more of infrastructure, virtual machines, containers, middlewares, and/or applications, may be deployed per user request)
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Anerousis with the teachings of Ciano, Mukku, and Shah in order to provide a device that teaches cloud environment identification operation occurring after a modified template clone generation operation is performed. The motivation for applying Anerousis teaching with Ciano, Mukku, and Shah teaching is to provide a device that determines configurations and requirements of a user-requested template such that enables an installation sequence accounting for dependencies can be properly considered and executed on a target platform (Anerousis, Col. 7). Ciano, Mukku, and Shah and Anerousis are analogous art directed towards virtual machine management. Therefore, it would have been obvious for one of ordinary skill in the art to combine Anerousis with Ciano, Mukku, and Shah to teach the claimed invention in order to provide an operational order in which identification occurs after generation in order to best configure execution on a target platform.
With regard to claim 15, Ciano teaches a non-transitory computer-readable medium storing a set of instructions the set of instructions comprising (Col. 11, lines 43-47, Furthermore, aspects of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system):
one or more instructions that, when executed by one or more processors of a device associated with a cloud computing environment, cause the device to (Col. 11, lines 12-21, Memory 506 may also include at least one computer readable storage medium 516 having computer readable program code embodied therewith, the computer readable program code configured to carry out the functions of embodiments described more fully herein … Still further, cloning of a virtual machine may be implemented, for example, by at least one processor 504 that executes code stored in memory 506):
…
receive a selection of a modified template (Col. 6, lines 35-36, At 300, a parent virtual machine is selected as a template for adaptive cloning), with the cloning agent (Col. 6, lines 35-36, At 300, a parent virtual machine is selected as a template for adaptive cloning), from the plurality of modified templates stored in the repository (Fig. 2, Virtual Machine Repository 205; Col. 5, lines 41-45, The cloning system further includes a virtual machine repository 205 comprising information about the virtual machines that are to be cloned; Col. 6, lines 36-39, The parent virtual machine may be retrieved from an external repository. The parent virtual machine is composed of virtual disk files and virtual machine configuration files);
generate a modified template clone, with the cloning agent, based on the selection of the modified template (Col. 8, lines 44-53, At 307 and 308, the cloning engine introspects the virtual disks of the parent virtual machine based on the target environment information and based on parent virtual machine information (selective partial cloning and adaptive partial cloning). In adaptive partial cloning mode at 308, the cloning engine further changes the content of the selected virtual disks among the subset of the virtual disks. A modified clone template is created from the selected virtual disk content; Col. 9, lines 17-18, At 310 the virtual machine clone is generated based on the clone templated calculated at 306 to 308);
analyze, via the cloning agent, virtual hardware of the cloud computing environment (Col. 3, lines 2-16, Virtual hardware 1011 refers to the hardware resources allocated to the parent virtual machine 101 and is mapped to hardware platform 106. The virtual hardware 1011 comprises one or more virtual disks 110. Virtual disks 110 are stored as files on the host computer or on a remote storage device, and appear to the guest operating systems as standard disk drives. The virtual hardware 1011 further comprises at least one configuration file 111 that contains information about the operating system, disk types, disk sizes, networking and other system data. It may also contain additional tags that can be used for application specific purposes) …;
identify, via the cloning agent, the cloud computing environment (Col. 2, lines 11-15, Cloning is further performed by identifying a target environment on which the clone is to run, retrieving information about the target environment and calculating a clone of the virtual machine based at least in part, upon retrieved information) …;
determine, via the cloning agent, one or more application programming interfaces based on identification of the cloud computing environment (Col. 4, lines 4-16, The cloning requests may be received from a virtual management center managing the virtual machines belonging to the computer system. Alternatively, cloning requests may be received by using local or remote predefined commands specific to the virtualization technology such as VMware VIX API for VMware technology …, or by using predefined Application Programming Interfaces (APIs), depending on the virtualization technology; Col. 4, line 34-38, The information related to the parent virtual machine may be retrieved (by predefined API) from at least one configuration file that depends on the virtualization technology. For example, the VMware vmx configuration file may be used for VMware technology);
utilize, via the cloning agent, the one or more application programming interfaces to obtain configuration data (Col. 6-Col. 7, lines 62-67 and lines 1-3, Alternatively, retrieval at 301 may be performed by using predefined Application Programming Interface(s) for introspecting virtual file systems offline depending on the virtualization technology. Such application programming interfaces use discovery mechanisms to discover software applications installed in the virtual machine. According to yet another embodiment of the invention, retrieval at 301 may be performed by retrieving information from the virtual machine configuration file(s));
configure, via the cloning agent, a virtual machine of the modified template clone, based on the configuration data and to generate a configured virtual machine (Col. 9, lines 17-35, A 310, the virtual machine clone is then generated based on the clone template calculated at 306 to 308. To generate the clone, the cloning engine may first initiate preparation for cloning. To prepare for cloning, the cloning engine 102 may notify the selected parent virtual machine to prepare for cloning. For example, the cloning engine 102 may access an application program interface at the parent virtual machine and notify the selected template virtual machine to prepare for cloning. The clone preparation phase may also initiate a deactivation of the parent virtual machine so that it does not accept any additional requests for cloning. Once the parent virtual machine notifies that the selective cloning can take place, the cloning engine 102 can initiate the selective cloning of the parent virtual machine. To start the partial cloning of the virtual machine, the cloning engine may instruct the hypervisor 105 of the parent virtual machine to migrate (or copy) a part of running virtual machine corresponding to the modified template to another virtual machine at the target hypervisor); and
enable the configured virtual machine to be utilized (Col. 9, 35-39, The cloning engine may also generate a message to enable use of the cloned virtual machine in the target environment and notify the hypervisor 106 of the parent virtual machine to reactivate the selected parent virtual machine so that it can be used as a template for a new clone).
Ciano reasonably teaches the method of analyzing the virtual hardware and identifying the cloud computing environment. However, However, Ciano may not explicitly teach the method of utilizing fingerprints of virtual hardware for comparison with additional virtual hardware fingerprints associated with additional cloud environments.
Mukku teaches analyzing … virtual hardware of the cloud computing environment to generate fingerprints of the virtual hardware (Col. 7, pg. 44-54, A mapping table 300 may be maintained for a logical storage volume or portion of a logical volume assigned to a storage unit … The mapping table 300 may be maintained in other storage associated with a computing resource, e.g., virtual machine or container, executing on a cloud computing platform 112; Col. 8, lines 4-8, Each segment may be identified by an identifier (Examiner notes: a fingerprint). In the illustrated embodiment, the identifier is a virtual segment identifier (VSID) 302. For example, each time a segment of a virtual storage volume is allocated, it may be assigned a VSID 302)
identifying … the cloud computing environment (Col. 14, lines 51-59, The method 800 may include receiving 802, by the agent module 700, a read request from a sole instance 222. The read request may include identifiers of a logical storage volume, slice of a storage volume, and LBA within the slice from which data is to be read. The method 800 may then include identifying 804, by the agent module 700, the tier ID of the computing platform storing the segment) based on comparing the fingerprints of the virtual hardware to stored virtual hardware fingerprints associated with a plurality of cloud computing environments (Col. 13, lines 55-67, The method 600 may then include executing the application on the new computing platform such that the role instances 222 of the restored application access 612 the segments of the logical storage volumes using the one or more mapping tables 300. As segments are accessed, they may also be migrated 614 to the new computing platform … its entry in the mapping table 300 for that slice may be updated such that the write unit 304 refers to the unit of storage identifying where the segment is stored in the storage resources of the new computing platform (e.g., physical segment or virtual segment identifier of a cloud computing platform)) which is substantially similar to claim 1, and therefore rejected with similar rationale.
Examiner notes: It would have been obvious for one of ordinary skill in the art to recognize that the limitations of claim 15 are being recited again as a system for the method of claim 1.
However, the combination may not explicitly teach the limitation of providing storing of templates in the repository.
Anerousis teaches store, in a repository, a plurality of modified templates that include a cloning agent (Col. 7, lines 16-24, At 206, one or more base templates may be created using the classified configuration templates. For instance, a base template for different types of deployment (e.g. web service deployment, database service deployment, another application deployment, and/or others) may be generated from the classified configuration templates the configurations contained therein. The base templates may be stored in a storage device) is substantially similar to claim 2, and therefore rejected with similar rationale.
Examiner notes it would have been obvious for one of ordinary skill in the art to recognize that the limitations of claim 15 are being recited again as a computer readable medium of the method of claim 2.
The combination reasonably teaches the performance of a cloning agent and modified template clone virtual machines. However, it does not explicitly teach that the cloning agent configures the virtual machine from within an operating system for the virtual machine.
Shah teaches wherein the cloning agent configures the virtual machine of the modified template clone from within an operating system for the virtual machine of the modified template clone (FIG. 1, VM 131 comprising a Guest OS 133 and Guest Agent 135; [0016], Each virtual machine 131 includes a guest operating system (guest OS) 133 that may be different from one virtual machine to another; [0019], Some of the virtual machines 131 may also include a guest agent 135; [0020], In one embodiment, the guest agent 135 may update and/or reconfigure a VM 131. For example, the guest agent 135 may add and/or change one or more virtual hardware components (e.g., disk drivers, network interface cards, disk controllers, memory, video cards, sound cards, etc.) based on data received from the VM manager) which is substantially similar to claim 1, and therefore rejected with similar rationale.
Examiner notes: It would have been obvious for one of ordinary skill in the art to recognize that the limitations of claim 15 are being recited again as a computer readable medium of the method of claim 1.
With regard to claim 16, Ciano teaches the non-transitory computer-readable medium of claim 15, wherein the one or more instructions further cause the device to:
receive, from the other device, the plurality of modified templates that include the cloning agent (Col. 6, lines 40-44, At 301 the cloning engine 102 retrieves from repository 205, the list of software applications (or software products) installed in the parent virtual machine. The cloning engine 102 also retrieves the relation between the software applications and the virtual machine virtual disks).
However, Ciano may not explicitly teach the limitation of providing templates for virtual machines to be implemented.
Anerousis teaches provide, to another device, a plurality of base templates for virtual machines to be implemented in the cloud computing environment (Col. 6, lines 1-6, Responsive to a user 112, for example, a system administrator requesting deployment of a computing component, for example, a server or infrastructure in the cloud environment, templates stored in the template database 108 may be retrieved and additional configurations mined for configuring the user specific requirements) which is substantially similar to claim 2, and therefore rejected with similar rationale.
Examiner notes: it would have been obvious for one of ordinary skill in the art to recognize that the limitation of claim 16 is being recited again as a computer readable medium of the method of claim 2.
With regard to claim 19, Anerousis teaches the non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to configure the virtual machine of the modified template clone, cause the device to:
configure the virtual machine of the modified template clone to operate in the cloud computing environment (Col. 3, lines 2-6, Configuration templates include predefined configurations that can be used to set up services of a cloud, a computing environment comprising a shared pool of configurable computing resources, for example, build an image); and
configure an operating system for the virtual machine of the modified template clone (Col. 3, lines 6-11, A configuration template may contain particular configuration details associated with a type of a computing infrastructure, operating systems, and middleware or application information such as those that host a website (a web server), data base server, application server, and/or others. Configuration templates may also include predefined security configuration, monitoring configuration, scaling group for load balancing and web services) is substantially similar to claim 10, and therefore is rejected with similar rationale.
Examiner notes: It would be obvious for one of ordinary skill in the art to recognize that claim 19 is being performed again as a computer-readable medium for the system of claim 10.
With regard to claim 20, Ciano teaches the non-transitory computer-readable medium of claim 15, wherein the configured virtual machine includes a configured compute instance (Col. 1, lines 44-50, For example, a company department can generate a clone instance of a virtual machine (wherein a virtual machine is identified as a virtual instance) for each employee within the department, such that each virtual machine includes a suite of preconfigured office applications (wherein a configuration is specified). As another example, a teacher can clone a virtual machine to create a clone instance for each student, where each clone includes all the lessons and labs (a distinct configuration) required for a school term).
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Ciano in view of Mukku in view of Anerousis in view of Shah as applied to claims 15 above, and further in view of Le.
With regard to claim 17, Le teaches the non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to analyze the virtual hardware of the cloud computing environment to generate the fingerprints of the virtual hardware, cause the device to:
analyze basic input/output system data associated with the cloud computing environment (Col. 4-Col. 5, lines 66-67 and lines 1-11, Since the file system driver itself is a file on the file system, one may wonder how it could be extracted from the file system in the first place, when no driver is loaded. Every type of operating system has a different way of addressing this issue. One possible solution is to store the sector offset corresponding to the beginning of the contents of the driver file in a special sector not used by the file system, such as a master boot record (MBR). When the operating system first loads, it could use the services of the computer’s BIOS (basic input/output system) to read the sector offset from the special sector, then load the driver file’s contents into memory, and then execute the driver’s code in order to decode the entire filesystem) is substantially similar to claim 5, and therefore reject with similar rationale.
Examiner notes: It would be obvious to one of ordinary skill in the art to recognize that claim 17 is being performed again as a computer-readable medium for the method of claim 5.
Claims 9 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Ciano in view of Mukku in view of Anerousis as applied to claims 8 and 15 above, respectively, and further in view of Zarfoss.
With regard to claim 9, Ciano teaches the device of claim 8, wherein the one or more application programming interfaces (Col. 10, lines 43-46, A particular sequencing of Application Programming Interfaces (API) and commands can be used to implement such partial cloning of virtual machines)
However, Ciano does not explicitly teach that the application programming interface is specified to obtain a token for API authentication.
Zarfoss teaches include a token (Col. 9, lines 52-58, Of note, in one embodiment, the encrypted security token may contain information used for authentication purposes. For instance, the security token may specify a verifiable machine image label and allowed security group names to authenticate the virtual machine 245 (and/or the application 248)) application programming interface configured to securely call other application programming interfaces (Col. 9, lines 58-67, Thus, in such an example, the cryptex server 134 may decrypt the encrypted security token to extract this information for use in authenticating the virtual machine 245 (and/or the application 248), and then once the virtual machine 245 is authenticated, the cryptex server 134 could return the decrypted security token to the application 248).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Zarfoss with the teachings of Ciano, Mukku, and Anerousis in order to provide a system that teaches token API authentication for secure communication with other APIs. The motivation for applying Zarfoss teaching with Ciano, Mukku, and Anerousis teaching is to provide a system that allows for an automated, secure technique for deploying security token in virtual machines deployed in the cloud (Zarfoss, Col. 9). Ciano, Mukku, Anerousis, and Zarfoss are analogous art directed towards cloud computing architectures and communication protocols. Therefore, it would have been obvious for one of ordinary skill in the art to combine Zarfoss with Ciano, Mukku, and Anerousis to teach the claimed invention in order to provide API access control through the use of token APIs in a cloud environment.
With regard to claim 18, Ciano teaches the non-transitory computer-readable medium of claim 15, wherein the one or more application programming interfaces include (Col. 10, lines 43-46, A particular sequencing of Application Programming Interfaces (API) and commands can be used to implement such partial cloning of virtual machines):
However, Ciano does not explicitly teach that the application programming interface is specified to obtain a token for API authentication.
Zarfoss teaches a metadata (Col. 6, lines 2-11, Such metadata could include, for example, a unique virtual machine identifier assigned to deployed virtual machine and network information associated with the deployed virtual machine (e.g., a network address assigned to the deployed virtual machine). Additionally, or in lieu of the virtual machine instance identifier and the network information, the metadata could include a label of the virtual machine image, a location where the virtual machine image is deployed, a timestamp of the virtual machine deployment, and so on) application programming interface configured to obtain (Col. 5, lines 1-5, Upon receiving the request, the cryptex server (application programming interface) could be configured to retrieve metadata associated with the virtual machine identifier and to authenticate the deployed virtual machine instance using the retrieved metadata) an instance identifier associated with the virtual machine (Col. 4-Col. 5, lines 63-67 and line 1, For instance, a cloud management system could assign a unique virtual identifier to each virtual machine instance deployed within the cloud, and the request transmitted to the cryptex server could specify the virtual machine instance identifier for the virtual machine instance into which the encrypted security credential was inserted) and a network location associated with the virtual machine (Col. 5, lines 5-15, As an example, the cryptex server could query a cloud management system to determine a network address (e.g., an Internet Protocol (IP) address within the cloud network) associated with the virtual machine instance identifier specified in the request) is substantially similar to claim 7, and therefore is rejected with similar rationale.
Examiner notes: It would be obvious for one of ordinary skill in the art to recognize that the limitation of claim 18 is being performed again as a computer-readable medium for the method of claim 7.
Further, Zarfoss teaches a token (Col. 9, lines 52-58, Of note, in one embodiment, the encrypted security token may contain information used for authentication purposes. For instance, the security token may specify a verifiable machine image label and allowed security group names to authenticate the virtual machine 245 (and/or the application 248)) application programming interface configured to securely call other application programming interfaces (Col. 9, lines 58-64, Thus, in such an example, the cryptex server 134 may decrypt the encrypted security token to extract this information for use in authenticating the virtual machine 245 (and/or the application 248), and then once the virtual machine 245 is authenticated, the cryptex server 134 could return the decrypted security token to the application 248) is substantially similar to claim 9, and therefore is rejected with similar rationale.
Examiner notes: It would be obvious for one of ordinary skill in the art to recognize that the limitation of claim 18 is being performed again as a computer-readable medium for the system of claim 9.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 2021/0281565 A1
teaches
Systems and Methods for Device Fingerprinting
Any inquiry concerning this communication or earlier communications from the examiner should be directed to IVAN A CASTANEDA whose telephone number is (571)272-0465. The examiner can normally be reached Monday-Friday 9:30AM-5:30PM EST.
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, Aimee Li can be reached at (571) 272-4169. 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.
/I.A.C./Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195