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 Objections
Claim 35 objected to because of the following informalities: extra word “to” in limitation “loading user secret data of the second device onto to the first device;”. Appropriate correction is required. For the purposes of examination, claim 35 will be interpreted as “loading user secret data of the second device onto the first device;”
Claim 40 objected to for the same reason, because of the following informalities: extra word “to” in limitation “loading user secret data of the second device onto to the first edge device;”. Appropriate correction is required. For the purposes of examination, claim 40 will be interpreted as “loading user secret data of the second device onto the first edge device;”
Claim 38 objected to because of the following informalities: extra word “provides” in limitation “in response to the selection, providing, by a user provides, the user secret data to the first device.”. Appropriate correction is required. For the purposes of examination claim 38 will be interpreted as “in response to the selection, providing, by a user, the user secret data to the first device.”
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 21-37 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20090222466 A1 (Allison), in view of US 20220188161 A1 (Mohan) and US 20090154709 A1 (Ellison).
Regarding claim 21, Allison teaches
A system comprising: a processor; and memory comprising computer executable instructions that, when executed, perform operations comprising: (fig 1; par 28, 68)
receiving, at a first device,(fig 5:525,530; par 45 “If the computing appliance 115 finds DR/C media 135 the previous operational state is automatically recovered from the DR/C media, at step 525. If there is not DR/C media 135 connected or accessible on a network storage device 140, 145, the process moves to step 530 and allows the network administrator to continue restoration from a Configuration Bundle.” DR/C stands for disaster recovery/cloning, and is just the configuration bundle in a computer readable medium, like a flash drive(Allison par 35)) configuration information for configuring the first device;(par 30 “A Configuration Bundle or Configuration Backup is the data file which facilitates the total recovery of a computing appliance's operational state upon restoration, cloning or migration to new operating software.”)
creating a configuration bundle containing a list of patches/packages, where one of the packages is a base package, using the configuration information; (fig 3:320; par 36 “Finally, a directory of patches or packages 320 is included. The patches directory 320 typically includes one or more software or firmware patches 325,330, 335, 340 that have been applied to the computing appliance. … . In other embodiments, the patches directory 320 will have at least one patch or package being the base package 325. The base package 325, when present, typically represents the base operating software installed on the target computing appliance.”; par 31 “In one embodiment, the meta-data 210 is comprised of a series of key-value pairs that detail information about the version and patch level of the computing appliance or cluster, how the computing appliance is configured to operate … and other miscellaneous information.”)
configuring the first device based on the configuration bundle;(fig 5:535; par 48 “In another embodiment, the configuration bundle includes the patches and packages ( or pointers to the patches and packages) necessary to bring the computing appliance 115 up to the required revision level. In those embodiments, the network administrator simply points at the configuration bundle and the patches are applied as part of the restore at 535.”; par 46,47 – describes installing the patches and packages from the configuration bundle onto the first device and restoring the operational state of the second device with the configuration bundle.)
loading encrypted operational state data of a second device to the first device;(fig 5:540; par 47 “Once the computing appliance 115 is brought up to the proper patch level, the previous operational state can be restored with the Configuration Bundle at 540.”; par 33 “In some embodiments, the Configuration Bundle 235 is automatically encrypted for security purposes. In some embodiments the network administrator (end-user) will be given the option of applying an additional encryption using a key of their choosing.”) and
executing the first device in accordance with the configuration information and the user secret data.(fig 5:540; par 47 “Once the computing appliance 115 is brought up to the proper patch level, the previous operational state can be restored with the Configuration Bundle at 540.”;)
However, Allison does not explicitly teach configuring the first device based on the dependency chain. Allison does, however, teach creating a configuration bundle containing a list of patches/packages.
On the other hand, Mohan teaches,
creating a dependency chain (par 8; fig 13:1302-1308; par 94 “In an example, the flow 1300 includes an operation 1308, where the computer system constructs a dependency graph (e.g., operation 146 of FIG. 1). …”; Mohan’s dependency graph teaches or at least would make obvious the claimed dependency chain because Mohan identifies dependencies from configuration information and orders execution according to those dependencies.) using the configuration information; (fig 13:1302,1304 “In operation 1302, the computer system may, for example, as part of an initialization process of a single console application, receive a resource configuration. The resource configuration may describe one or more parameters of a resource included in the console application including, but not limited to, a dependency declaration on another resource of the plurality of cloud resources.”)
configuring the first resource based on the dependency chain;(fig 13:1310,1312; par 95 “In an example, the flow 1300 includes an operation 1310, where the computer system generates an execution queue (e.g., operation 150 of FIG. 1). The execution queue (e.g., execution queue 130 of FIG. 1) may include the resource stages included in the dependency graph, ordered according to level order. For example, the resource stages of a first level in the dependency graph may be included first, followed by those of a second level, etc., until each of the resources included in the dependency graph are included in the execution queue.”; par 96 “In an example, the flow 1300 includes an operation 1312, where the computer system executes a plurality of resources (e.g., operation 152 of FIG. 1). As part of managing the initialization and execution of cloud resources, the computer system may execute the resource stages according to the execution queue.”)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the automated appliance cloning/migration of Allison with the dependency chain of Mohan.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because Allison’s list of patches/packages does not provide details regarding which order to apply all of those patches/packages to avoid dependency errors during configuration(Mohan par 7). Mohan’s dependency chain provides a benefit of avoiding dependency errors, reduce manual ordering, and improving initializing/execution order(Mohan par 7). The combination would have involved applying a known technique taught by Mohan(creating a dependency chain and using it during configuration) to the similar system of Allison to improve Allison’s process in a predictable way.
However, The combination of Allison and Mohan does not explicitly teach loading user secret data of a second device to the first device. Allison does, however, teach loading encrypted operational state data of a second device to the first device;(Allison fig 5:540; par 47 teaches loading the previous operational state, and par 33 teaches how the configuration bundle can be encrypted using a key of the user’s choosing.)
On the other hand, Ellison teaches,
loading user secret data of a second device to the first device;(fig 4:412; par 44 “Step 412 represents the use of the secrets to finish the installation of the virtual machine on the destination (physical) machine and letting it run.”; par 9 “When unsealed via interaction with the key server, the secrets may be used to migrate a virtual machine from the source machine to the destination machine. That is, a virtual machine ( or any other software state, such as a process) may be migrated from one environment to another in pieces, including the collection of non-secrets and the secrets used by that software. The non-secrets are copied from one environment to another. The secrets are migrated as specified herein. Only when both arrive at the destination environment and are made available to it is the software migration complete.”) and
executing the first device in accordance with the configuration information and the user secret data.(fig 4:412; par 44 “Step 412 represents the use of the secrets to finish the installation of the virtual machine on the destination (physical) machine and letting it run.”)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the appliance migration system of Allison and Mohan with the secret migration of Ellison.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because Ellison teaches migrating both non-secrets and secrets. The benefit of doing that is that only things that need to be kept secret are kept secret, secret information is properly migrated from original to the new location(Ellison par 4), but the migration only completes when both secret and non-secret parts are migrated(Ellison par 9). The combination would have involved applying a known technique taught by Ellison to the similar system of Allison and Mohan to improve a similar system in a predictable way.
Regarding claim 22, Allison, Mohan, Ellison teaches
The system of claim 21,
Allison further teaches,
wherein the configuration information(par 30 “A Configuration Bundle or Configuration Backup is the data file which facilitates the total recovery of a computing appliance's operational state upon restoration, cloning or migration to new operating software.”) is collected from the second device and represents a configuration status of the second device.(par 31 “In one embodiment, the meta-data 210 is comprised of a series of key-value pairs that detail information about the version and patch level of the computing appliance or cluster, how the computing appliance is configured to operate (standalone or clustered), the computing appliance's domain and other miscellaneous information.”; par 32 “retaining copies of configuration files 215, 220, 225, 230 from all members of a cluster (for example 110, 115, 120) allows any member of the cluster to be restored using a Configuration Bundle 235 from any other member of the cluster.”; par 55 “Whenever changes are made to any node in the cluster, the changed node's configuration information is shared among all members of the cluster in order to facilitate this recovery functionality.”)
Regarding claim 23, Allison, Mohan, Ellison teaches
The system of claim 21,
Allison further teaches,
wherein the first device and the second device are each an edge device implemented in an edge environment. (fig 1:115; par 28 “Computing appliances 110, 115, 120 may be firewalls, routing devices, security devices, web servers or any other sort of computing device one might utilize in a networked environment. For the purposes of illustration in the various embodiments computing appliance 115 will be the computing appliance to be restored, cloned or migrated to new operating software.” Allison’s computing appliance includes edge devices.)
Regarding claim 24, Allison, Mohan, Ellison teaches
The system of claim 21,
Allison further teaches,
wherein the first device is intended to replace the second device in an edge environment.(par 24 “Additional embodiments allow the network administrator to clone or copy a device's operational state onto a similar device. Cloning allows a network administrator to easily replace questionable hardware or build a clustered configuration.”; par 50)
Regarding claim 25, Allison, Mohan, Ellison teaches
The system of claim 21,
Allison, Mohan, Ellison further teaches,
wherein the configuration information comprises device state of the second device (Allison par 20 “Finally, the configuration bundle is accessed to restore all necessary configuration settings to return the computing appliance to its previous operational state.”; par 30 “A Configuration Bundle or Configuration Backup is the data file which facilitates the total recovery of a computing appliance's operational state upon restoration, cloning or migration to new operating software.”) and workload configuration information of the second device.(Mohan par 89 “The resource configuration may describe one or more parameters of a resource included in the console application including, but not limited to, a dependency declaration on another resource of the plurality of cloud resources.”)
Regarding claim 26, Allison, Mohan, Ellison teaches
The system of claim 25,
Allison further teaches,
wherein the device state of the second device comprises at least one of:
credential information of the second device; (par 30 “FIG. 2 illustrates an example embodiment of a Configuration Bundle, which includes information from a system database 205, … . The system database 205 includes information such as rules, network objects, policies, administration accounts or other information required for the operation of a computing appliance.”; par 31/ Table1 “Key: User; Value:testerA”)
Regarding claim 27, Allison, Mohan, Ellison teaches
The system of claim 25,
Mohan further teaches,
wherein the workload configuration information of the second device comprises at least one of:
workload objects of the second device;(par 54; par 55 “FIG. 4 illustrates an example dependency relationship of multiple interdependent cloud resources including one or more stages, in accordance with one or more embodiments. As described above in reference to FIGS. 1-3, resources may describe applications, services, and/or cloud resources that, for example, may provide functionality or other capabilities in a single environment including multiple resources. In some embodiments, a resource may be a logical grouping of stages that manages a cloud resource (e.g., a compartment resource, a registry resource, a localization resource, etc.). A resource 410 may include one or more stages 412, where a stage 412 may be an a discrete operation of a resource that may be individually configured in a manner different from other stages of the same resource.”)
Regarding claim 28, Allison, Mohan, Ellison teaches
The system of claim 21,
Allison further teaches,
wherein the configuration information has been segmented into different namespaces that are organized hierarchically.(fig 3; par 36 “A Configuration Bundle 310, as described in detail above in reference to FIG. 2, is included on the DR/C media 300 for restoration or cloning of the computing appliance's configuration settings. A fail-safe configuration file 315 is included on the DR/C media 300 to ensure that the target device can be restored to a minimal operational state if somehow the Configuration Bundle was corrupted or otherwise unusable. Finally, a directory of patches or packages 320 is included. The patches directory 320 typically includes one or more software or firmware patches 325,330, 335, 340 that have been applied to the computing appliance. … , the patches directory 320 will have at least one patch or package being the base package 325. The base package 325, when present, typically represents the base operating software installed on the target computing appliance.”; fig 8A-C; par 17)
Regarding claim 29, Allison, Mohan, Ellison teaches
The system of claim 21,
Mohan further teaches,
wherein creating the dependency chain comprises:
using the configuration information to build a topological dependency chain(par 91 “In an example, the flow 1300 includes an operation 1306, where the computer system performs a topological sort (e.g., operation 144 of FIG. 1).”) that:
associates objects in the configuration information with one another; (par 89 “The resource configuration may describe one or more parameters of a resource included in the console application including, but not limited to, a dependency declaration on another resource of the plurality of cloud resources.”; par 90,91) and
defines dependencies between the objects in the configuration information. (par 94 “In an example, the flow 1300 includes an operation 1308, where the computer system constructs a dependency graph (e.g., operation 146 of FIG. 1). The dependency graph (e.g., dependency graph 120 of FIG. 1) may include the resources or resource stages in a hierarchal level ( e.g., first level 930 of FIG. 9) identified in the topological sort of operation 1306.”)
Regarding claim 30, Allison, Mohan, Ellison teaches
The system of claim 29,
Allison, Mohan, Ellison further teaches,
wherein configuring the first device comprises:
recreating a device state of the second device(Allison par 20 “Finally, the configuration bundle is accessed to restore all necessary configuration settings to return the computing appliance to its previous operational state.”; par 30 “A Configuration Bundle or Configuration Backup is the data file which facilitates the total recovery of a computing appliance's operational state upon restoration, cloning or migration to new operating software.”) and a workload configuration of the second device by evaluating the topological dependency chain.(Mohan fig 6; par 41 “In some cases, initializing may constitute a preliminary operation that provides initial values or states to be provided to resources ( e.g., according to the resource dependencies 110 and/or the dependency graph 120), to permit them to initialize. As an illustrative example, initialization may proceed according to the topological sort, such that primary resources may be initialized before secondary resources, etc. The initial states and/or values of the primary resources may be provided to the secondary resources at initialization of the secondary resources. In this way, cloud resources may be provided with the resource states and/or values upon which they depend at the time of initialization. In contrast to an execution queue, initialization described in reference to operation 148 may be coordinated by the orchestrator in a relatively simpler approach, by which the orchestrator may not include detailed inter-resource or inter-stage dependency information. For example, when initializing the resources ( e.g., after recovering from a failure, error, and/or other service disruption) the entire dependency graph 120 may be initialized. In such cases, initializing resources according to level order information may potentially avoid a dependency error.”)
Regarding claim 31, Allison, Mohan, Ellison teaches
The system of claim 30,
Mohan further teaches,
wherein evaluating the topological dependency chain comprises:
beginning an evaluation at a lowest level of the topological dependency chain;(par 94 “In an example, the flow 1300 includes an operation 1308, where the computer system constructs a dependency graph (e.g., operation 146 of FIG. 1). The dependency graph (e.g., dependency graph 120 of FIG. 1) may include the resources or resource stages in a hierarchal level ( e.g., first level 930 of FIG. 9) identified in the topological sort of operation 1306. The dependency graph may be rooted at an entry point, which may define, in some cases, a point at which the earliest dependency may be traced.”) and
progressing the evaluation through increasingly higher levels of the topological dependency chain until a highest level of the topological dependency chain has been evaluated.(par 95 “The execution queue (e.g., execution queue 130 of FIG. 1) may include the resource stages included in the dependency graph, ordered according to level order. For example, the resource stages of a first level in the dependency graph may be included first, followed by those of a second level, etc., until each of the resources included in the dependency graph are included in the execution queue.”)
Regarding claim 32, Allison, Mohan, Ellison teaches
The system of claim 21,
wherein configuring the first device comprises:
providing an option to accept or decline application of the configuration information to the first device;(par 45; par 64 “In an example embodiment the restoration occurs automatically if the USB flash drive 135 with a Configuration Bundle is detected by the installation program. In another example embodiment the installation program prompts the network administrator (end-user) for the location of a Configuration Bundle allowing the restoration process to proceed automatically once the new operating software installation is complete.”)
receiving a selection of the option to accept the application of the configuration information to the first device;(par 45; par 64;) and
committing the application of the configuration information to the first device.(par 64 “In another example embodiment the installation program prompts the network administrator (end-user) for the location of a Configuration Bundle allowing the restoration process to proceed automatically once the new operating software installation is complete.”; fig 5:540; par 47 “Once the computing appliance 115 is brought up to the proper patch level, the previous operational state can be restored with the Configuration Bundle at 540.”;)
Regarding claim 33, Allison, Mohan, Ellison teaches
The system of claim 21,
Ellison further teaches,
wherein the user secret data comprises sensitive user data stored by the second device or used to interact with the second device.(fig 4:412; par 44 “Step 412 represents the use of the secrets to finish the installation of the virtual machine on the destination (physical) machine and letting it run.”; par 9 “When unsealed via interaction with the key server, the secrets may be used to migrate a virtual machine from the source machine to the destination machine. That is, a virtual machine ( or any other software state, such as a process) may be migrated from one environment to another in pieces, including the collection of non-secrets and the secrets used by that software. The non-secrets are copied from one environment to another. The secrets are migrated as specified herein. Only when both arrive at the destination environment and are made available to it is the software migration complete.”; par 10)
Regarding claim 34, Allison, Mohan, Ellison teaches
The system of claim 21,
Ellison further teaches,
wherein the user secret data is not included in the configuration information. (fig 4:412; par 44 “Step 412 represents the use of the secrets to finish the installation of the virtual machine on the destination (physical) machine and letting it run.”; par 9 “When unsealed via interaction with the key server, the secrets may be used to migrate a virtual machine from the source machine to the destination machine. That is, a virtual machine ( or any other software state, such as a process) may be migrated from one environment to another in pieces, including the collection of non-secrets and the secrets used by that software. The non-secrets are copied from one environment to another. The secrets are migrated as specified herein. Only when both arrive at the destination environment and are made available to it is the software migration complete.”;)
Regarding claim 35, it is the method that the system of claim 21 implements and is rejected for the same reasons.
Regarding claim 36, Allison, Mohan, Ellison teaches
The method of claim 35,
Ellison further teaches,
wherein loading the user secret data comprises:
providing an option to load the user secret data onto the first device; (fig 4:404; par 42 “Step 404 evaluates whether the destination machine will allow the migration, which it may choose to not do for any of various reasons (e.g., too overloaded itself). Note that step 404 may be pre-negotiated between the source and destination machine, whereby migration is allowed subject to proper attestation and/or meeting other policy. Step 414 represents informing the source machine with a suitable error code or the like if migration is not allowed.”) and
receiving a selection of the option to load the user secret data onto the first device. (fig 4:404; par 42; par 24 “With respect to attestation, the key server 112 verifies whether the machine B 106 is entitled to unseal the secrets, … . The machine B's credentials are evaluated, as is any configuration data that ensures that in addition to having the proper credentials, the machine B 106 has not been tampered with. … ”; par 25)
Regarding claim 37, Allison, Mohan, Ellison teaches
The method of claim 36,
Ellison further teaches,
wherein loading the user secret data further comprises:
in response to the selection, retrieving, by the first device, the user secret data from a storage location. (fig 4:410; par 44 “if attestation requirements and policy compliance are met, step 410 is executed to decrypt the secrets, (otherwise an error is returned to the source at step 414 to inform the source of a migration failure).”; fig 5:510; par 47 “If such policy is met, the migration key (or a session key with the session-key re-encrypted set of secrets) is returned to the destination machine at step 510, otherwise an error message is returned (step 512).”)
Claim(s) 38,39 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20090222466 A1 (Allison), US 20220188161 A1 (Mohan), and US 20090154709 A1 (Ellison) as applied to claim 36,35 above, and further in view of US 20170371696 A1 (Prziborowski).
Regarding claim 38, Allison, Mohan, Ellison teaches
The method of claim 36,
Ellison further teaches,
wherein loading the user secret data further comprises:
in response to the selection, providing, by a key server following a policy,(par 25 “Further, beyond policy data stating that the machine B 106 is indeed Machine B and is otherwise in a good configuration, additional criteria set forth in the policy data 110 may need to be met. For example, the Machine B may only be able to access the set of one or more secrets 106 at a certain time of day, the machine B 106 may not be able to access the secrets 108 if it is currently running program XYZ, the machine B may need to comply with other security checks, and so forth.”) the user secret data to the first device.( fig 5:510; par 47 “If such policy is met, the migration key (or a session key with the session-key re-encrypted set of secrets) is returned to the destination machine at step 510, otherwise an error message is returned (step 512).”)
However, Allison, Mohan, Ellison does not explicitly teach in response to the selection, providing, by a user, the user secret data to the first device. Ellison does, however, teach a key server, following a policy, providing the user secret data to the first device.
On the other hand, Prziborowski teaches,
wherein loading the user secret data further comprises:
providing, by a user, the user secret data to the migration service.(par 16 “migration service 170, which will take care of authenticating with the source and destination VMs ( e.g., when provided with a username and private key).”; par 18 “Method 200 may begin at step 202, migration service 170 establishes connections to both source cloud provider 102 and destination cloud provider 152, using credentials 172 stored at the service or provided by a user in real time.”; par 19 “Once migration service 170 deploys a destination VM from a template, migration service 170 boots up the destination VM, and a user can provide migration service 170 with a required IP and credentials ( e.g., private key) of the destination VM.”; par 21 “At step 208, migration service 170 estimates the migration time to transfer the data to the destination VM and requests authorization from the user to proceed with the migration from the source VM.”)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the secret data access of the Allison, Mohan, Ellison combination with the user providing secret data of Prziborowski.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because migrating between different environments may involve environment specific information(for example, a different password for a different cloud provider, or the user’s username is different on the new target server) (Prziborowski par 2 “One hurdle for customer adaption of cloud services has been the task of moving the customer's existing workloads. This is a problem exacerbated by the diversity of cloud service providers today, in which capturing a customer's business might involve exporting running VMs from multiple cloud service providers. This problem limits customer mobility between providers and incurs high costs in downtime and bandwidth. While some conventional approaches might provide a vendor-specific migration tool, such approaches rely on the specific internal architecture of the particular cloud provider, and lock customers into a specific cloud provider with no real mobility.”). Asking the user for missing information as taught by Prziborowski would have predictably improved Allison, Mohan, Ellison by providing flexibility migrating between different environments if information is missing(Prziborowski par 2). The combination would have involved applying a known technique taught by Prziborowski to the similar system of Allison, Mohan, Ellison to improve a similar system in a predictable way.
Regarding claim 39, Allison, Mohan, Ellison teaches
The method of claim 35,
However, Allison, Mohan, Ellison does not explicitly teach wherein user secret data comprises passwords for accessing applications and services from the second device. Ellison does, however, teach a key server, following a policy, providing the secret data to the first device.(Ellison par 25,47)
On the other hand, Prziborowski teaches,
wherein user secret data comprises passwords for accessing applications and services from the second device.(par 15; par 16 “migration service 170, which will take care of authenticating with the source and destination VMs ( e.g., when provided with a username and private key).”; par 18 “Method 200 may begin at step 202, migration service 170 establishes connections to both source cloud provider 102 and destination cloud provider 152, using credentials 172 stored at the service or provided by a user in real time.”; par 19 “Once migration service 170 deploys a destination VM from a template, migration service 170 boots up the destination VM, and a user can provide migration service 170 with a required IP and credentials ( e.g., private key) of the destination VM.”)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the secret data access of the Allison, Mohan, Ellison combination with the user providing secret data of Prziborowski.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because migrating between different environments may involve environment specific information(for example, a different password for a different cloud provider, or the user’s username is different on the new target server) (Prziborowski par 2 “One hurdle for customer adaption of cloud services has been the task of moving the customer's existing workloads. This is a problem exacerbated by the diversity of cloud service providers today, in which capturing a customer's business might involve exporting running VMs from multiple cloud service providers. This problem limits customer mobility between providers and incurs high costs in downtime and bandwidth. While some conventional approaches might provide a vendor-specific migration tool, such approaches rely on the specific internal architecture of the particular cloud provider, and lock customers into a specific cloud provider with no real mobility.”). Asking the user for missing information as taught by Prziborowski would have predictably improved Allison, Mohan, Ellison by providing flexibility migrating between different environments if information is missing(Prziborowski par 2). The combination would have involved applying a known technique taught by Prziborowski to the similar system of Allison, Mohan, Ellison to improve a similar system in a predictable way.
Claim(s) 40 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20090222466 A1 (Allison), in view of US 20090154709 A1 (Ellison).
Regarding claim 40, Allison teaches
A first edge device(fig 1:115; par 28 “Computing appliances 110, 115, 120 may be firewalls, routing devices, security devices, web servers or any other sort of computing device one might utilize in a networked environment. For the purposes of illustration in the various embodiments computing appliance 115 will be the computing appliance to be restored, cloned or migrated to new operating software.” Allison’s computing appliance includes edge devices.) comprising: a processor; and memory comprising computer executable instructions that, when executed, perform operations comprising: (fig 1; par 28, 68)
receiving configuration information for a second edge device; (fig 5:525,530; par 45 “If the computing appliance 115 finds DR/C media 135 the previous operational state is automatically recovered from the DR/C media, at step 525. If there is not DR/C media 135 connected or accessible on a network storage device 140, 145, the process moves to step 530 and allows the network administrator to continue restoration from a Configuration Bundle.” DR/C stands for disaster recovery/cloning, and is just the configuration bundle in a computer readable medium, like a flash drive(Allison par 35); par 30 “A Configuration Bundle or Configuration Backup is the data file which facilitates the total recovery of a computing appliance's operational state upon restoration, cloning or migration to new operating software.”)
configuring the first edge device using the configuration information; (fig 5:535; par 48 “In another embodiment, the configuration bundle includes the patches and packages ( or pointers to the patches and packages) necessary to bring the computing appliance 115 up to the required revision level. In those embodiments, the network administrator simply points at the configuration bundle and the patches are applied as part of the restore at 535.”)
retrieving encrypted operational state data implemented by the second edge device, (par 33 and 47 goes over the encryption; fig 7:715; par 64 “In an example embodiment the restoration occurs automatically if the USB flash drive 135 with a Configuration Bundle is detected by the installation program. In another example embodiment the installation program prompts the network administrator (end-user) for the location of a Configuration Bundle allowing the restoration process to proceed automatically once the new operating software installation is complete.”)
loading the encrypted operational state data onto the first edge device; (fig 5:540; par 47 “Once the computing appliance 115 is brought up to the proper patch level, the previous operational state can be restored with the Configuration Bundle at 540.”; par 33 “In some embodiments, the Configuration Bundle 235 is automatically encrypted for security purposes. In some embodiments the network administrator (end-user) will be given the option of applying an additional encryption using a key of their choosing.”) and
executing the first edge device in accordance with the configuration information and encrypted operational state. (fig 5:540; par 47 “Once the computing appliance 115 is brought up to the proper patch level, the previous operational state can be restored with the Configuration Bundle at 540.”;)
However, Allison does not explicitly teach retrieving user secret data implemented by the second edge device, wherein the user secret data is not included in the configuration information; loading the user secret data onto to the first edge device; and executing the first edge device in accordance with the configuration information and the user secret data. Allison does, however, teach loading encrypted operational state data of a second device to the first device;(Allison fig 5:540; par 47 teaches loading the previous operational state, and par 33 teaches how the configuration bundle can be encrypted using a key of the user’s choosing.)
On the other hand, Ellison teaches,
retrieving user secret data implemented by the second edge device(par 10 “In one aspect, software on a source machine prepares secret data for migration by building a migration message similar to that built by a TPM-like device when it seals a secret…. This migration message may be kept with the software and migrate with it, if it ever migrates. In the event of migration of that software and its data, the sealed secret in the migration message is thus accessible to the destination machine.”), wherein the user secret data is not included in the configuration information; (par 9 “When unsealed via interaction with the key server, the secrets may be used to migrate a virtual machine from the source machine to the destination machine. That is, a virtual machine ( or any other software state, such as a process) may be migrated from one environment to another in pieces, including the collection of non-secrets and the secrets used by that software. The non-secrets are copied from one environment to another. The secrets are migrated as specified herein. Only when both arrive at the destination environment and are made available to it is the software migration complete.”)
loading the user secret data onto the first edge device; (fig 4:412; par 44 “Step 412 represents the use of the secrets to finish the installation of the virtual machine on the destination (physical) machine and letting it run.”; par 9 “When unsealed via interaction with the key server, the secrets may be used to migrate a virtual machine from the source machine to the destination machine. That is, a virtual machine ( or any other software state, such as a process) may be migrated from one environment to another in pieces, including the collection of non-secrets and the secrets used by that software. The non-secrets are copied from one environment to another. The secrets are migrated as specified herein. Only when both arrive at the destination environment and are made available to it is the software migration complete.”) and
executing the first edge device in accordance with the configuration information and the user secret data. (fig 4:412; par 44 “Step 412 represents the use of the secrets to finish the installation of the virtual machine on the destination (physical) machine and letting it run.”)
It would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the appliance migration system of Allison with the secret migration of Ellison.
One of ordinary skill in the art prior to the effective filing date would have been motivated to make the combination because Ellison teaches migrating both non-secrets and secrets. The benefit of doing that is that only things that need to be kept secret are kept secret, secret information is properly migrated from original to the new location(Ellison par 4), but the migration only completes when both secret and non-secret parts are migrated(Ellison par 9). The combination would have involved applying a known technique taught by Ellison to the similar system of Allison to improve a similar system in a predictable way.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 20220327007 A1 - Adogla - Migrating edge device resources to a cloud computing environment
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MICHAEL XU whose telephone number is (571)272-5688. The examiner can normally be reached Monday-Friday 8:00am - 5:00pm.
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, Bryce Bonzo can be reached at (571) 272-3655. 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.
/M.X./Examiner, Art Unit 2113 /BRYCE P BONZO/Supervisory Patent Examiner, Art Unit 2113