DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
This action is in response to submission filed 06 November 2025 for application 15/819,769.
Currently claims 1, 11, and 17 have been amended. Claims 7, 10, 16, and 20 have been canceled. Currently claims 1-6, 8, 9, 11-15, and 17-19 are pending and have been examined.
Response to Arguments
Regarding Applicant’s arguments, filed 06 November 2025, with respect to the rejection of claims under 35 U.S.C. 103, see pages 8-11, with respect to the newly amended emphasized features, Applicant argues that the proposed combination of cited references fails to teach or suggest at least the claim features emphasized above.
Examiner’s Response: Applicant’s arguments have been fully considered but are not persuasive because the newly amended limitation as recited in the independent claim 1 (and similarly in independent claims 11 and 17) have been considered but are moot because the new ground of rejection (citing the new reference Brugali et al (Trends in Software Environments for Networked Robotics, 2007)) for teaching this new limitation does not rely on any reference combination applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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 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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1, 2, 4-6, 8, 9, 11-13, 15, and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over Morariu et al (US 8990806 B2) in view of Borzello et al (US20140282178 A1) and Ferrandiz (US 8584122 B2) and further in view of Brugali et al (Trends in Software Environments for Networked Robotics, 2007).
Regarding Claim 1
Morariu discloses: A method comprising: receiving a set of manually executed commands executed commands of a virtual environment ([Column 3, Paragraph 3] As described above, an administrator must manually reconfigure the new VM's configurations inherited from the source VM. [Column , Paragraph 5] In addition to the above, creating several brand new VMs to be configured with specific IP settings is a manual process often involving entering of IP settings and other details on each VM);
applying, by a processing device, a process to identify a set of correlated commands in view of the set of manually executed commands, wherein the set of correlated commands are associated with start-up of the virtual environment or a repeated management task of the virtual environment ([Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: External input corresponds to the manually executed commands. Response file corresponds to a set of correlated commands);
generating, by a processing device, a recommended script comprising the set of correlated commands, wherein the recommended script is to automate execution of the set of correlated commands within the virtual environment ([Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: Text file corresponds to a recommended script comprising the set of correlated commands);
providing a user interface comprising a recommendation to update an existing script in view of the recommended script, wherein the existing script is a start-up script or a job scheduler script ([Column 6, Paragraph 2] For example, the peripheral device adapter (114) may provide an interface to input/output devices, such as, for example, the display device (103), an external storage device, a keyboard, touch screen displays, and a mouse, among others, to create a user interface and/or access external sources of memory storage, for example. [Column 12, Paragraph 1] Use of a virtual machine agent (158-1, 158-2, 158-n) in the main VM may offer a way to inject startup script to achieve OS vendor neutral logic of injecting a program that runs on OS startup. In one example, a VM (154-1, 154-2, 154-n) can have an HP SA agent installed, and an SA agent startup script can be injected to achieve OS vendor independence. The virtual machine agent is not explicitly shown in the FIG. 1 for brevity, but may be included as a VM application (158-1, 158-2, 158-n). The virtual machine agent may register itself as a daemon (e.g., a service) that is automatically started upon starting of the VM main operating system. Further, the virtual machine agent may itself have a notion of pluggable startup scripts that it executes during its startup providing a method to run a custom script upon OS startup in an OS vendor agnostic manner. Note: Also see Figure 1 showing display device corresponding with user interface) ;
and updating the existing script to include the recommended script to automate execution of the set of correlated commands in response to receiving an affirmative selection via the user interface, wherein updating the existing script comprises: identifying a position in the existing script to insert the recommended script ([Column 11, Paragraph 6]In one example, customizing (block 702) network settings of the offline main OS (156-1, 156-2, 156-n) can be performed by injecting an OS startup script into the system partition of the offline main OS (156-1, 156-2, 156-n). In one example, the OS startup script can take input in the form of embedded configurations or a specific configuration file on disk such as the virtual hard drives (162-1, 162-2, 162-n));
and writing the recommended script to the identified position in the existing script ([Column 12, Paragraph 1] Mechanics of injecting an SOS (FIG. 3, 320) startup script are specific to each OS (156-1, 156-2, 156-n) vendor and sometimes even vary between different versions of the same OS (156-1, 156-2, 156-n). Use of a virtual machine agent (158-1, 158-2, 158-n) in the main VM may offer a way to inject startup script to achieve OS vendor neutral logic of injecting a program that runs on OS startup. In one example, a VM (154-1, 154-2, 154-n) can have an HP SA agent installed, and an SA agent startup script can be injected to achieve OS vendor independence. The virtual machine agent is not explicitly shown in the FIG. 1 for brevity, but may be included as a VM application (158-1, 158-2, 158-n)).
However, Morariu does not explicitly disclose: machine learning, and wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame; determining a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame; setting a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands; and executing the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands.
Borzello teaches, in an analogous system: machine learning ([0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering. In some cases, other methods for clustering data in combination with computed auxiliary features may be used by the prediction engine as appropriate);
wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame ([0076] The usage data may be collected over a period of time. In some cases, as time goes on, oldest data can be discarded and newer data can be incorporated to update the usage data. In some cases, historical patterns can be monitored and data from only designated time periods used. For example, usage data from summer time may be discarded and data from a school semester time period be used. The counts in the table may be batch updated or continuously updated. [0077] In a further embodiment, which is applicable to each of the command log views, a prediction confidence threshold is included. By using the confidence threshold, any column containing a probability over a certain threshold may be used to generate a set of predictions for a next command).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello to use machine learning and wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Brugali teaches, in an analogous system: determining a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame ([Page 405, Paragraph 1] A Virtual Environment (VE) is a :31) visual simulation that represents the computational geometric model of a real environment created with computer graphics techniques. A VE includes several virtual objects that represents the real objects that are found in the real environment. Some of that virtual objects can be virtual robots. Visual simulation can run much faster than the real robot, thus the operator can predict the final state of the robot before the command has been received and executed. The operator can then use this information for preparing the next command and issuing it in advance in order to compensate the transmission delay. [Page 405, Paragraph 2] For each task to be performed by one or more robots, one or more operators analyse the problem, plan the sequence of actions that solves it, verify the robot behavior in simulation, and finally, transmit the batch of commands to the remote real robot. Once defined, the batch of commands can be executed repeatedly every time the same task has to be performed. During the task execution, the operator plays the role of task supervisor. lf the environment. characteristics or the task specifications change, the operator must define a new sequence of commands and transfer it to the remote robot. Note: Batch of commands corresponds to the set of correlated commands. Operators, virtual robots correspond to the different devices within the virtual environment. Batch of commands can be executed repeatedly corresponds to determining a frequency of execution of the set of correlated commands and every time the same task has to be performed corresponds to second time frame. One or more operators analyse the problem, plan the sequence of actions that solves it, verify the robot behavior in simulation corresponds to wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands and it is within the first frame because it happens before it is sent to the real robot).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu and Borzello to incorporate the teachings of Brugali to use determining a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame. One would have been motivated to do this modification because doing so would give the benefit of use this information for preparing the next command and issuing it in advance as taught by Brugali [Page 405, Paragraph 1].
Ferrandiz teaches, in an analogous system: setting a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands ([Column 5, Lines 37-44] More specifically, batch jobs whose run frequencies are not expressed as daily run frequencies in the SLA (FIG. 3) are identified. This may include batch jobs that run a number of times daily, and those that run weekly, monthly, or at some other time periods. At operation 208, the identified batch jobs that have irregular run frequencies are regularized to batch jobs that have regular run frequencies. Note: Also see Figure 3 middle row showing setting a timing configuration. Job name 'B is batch job and corresponds to the set of correlated commands. Daily corresponds to a frequency of execution. 20 (start SLA) and 22 (End SLA) corresponds to a time interval. 2 corresponds to a predictable frequency associated with the execution of the set of correlated commands);
and executing the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands ([Column 8, Lines 24-42] FIG. 3 is an example table 300 illustrating a service level agreement (SLA) for plural batch jobs to be executed by the example third party system 130 of FIG. 1. The SLA table 300 may be in the business requirement database 106. From time to time the SLA table 300 may be updated via computer system 102, as described above in reference to FIG. 1. The SLA table includes one or more job name that identify respective batch jobs (e.g., batch job A, B, C, and the like) to be executed by the third party system 130. It is noted that the batch job name may be a descriptive alphanumeric string and the like. For each batch job, the following fields are specified: 1) frequency of execution; 2) number of time of execution; 2) start time (Start_SLA) after which the batch job is to begin; and 3) end time (End_SLA) before which the batch job is to end. For example, bath job A has a daily frequency with only one execution. Batch job B has a daily frequency with two executions (e.g., 10, 20), while batch job C has hourly executions (e.g., at 0, 4, 8, 12, 14, 16 and 20). Note: Also see Figure 3);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu, Borzello, and Brugali to incorporate the teachings of Ferrandiz to set a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands; and executing the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands. One would have been motivated to do this modification because doing so would give the benefit of plural batch jobs to be executed by the example third party system as taught by Ferrandiz [Column 8, Lines 24-42].
Regarding Claim 2
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
However, Morariu does not explicitly disclose: wherein the machine learning process comprises at least one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process.
Borzello teaches, in an analogous system: wherein the machine learning process comprises at least one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process ([0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering. In some cases, other methods for clustering data in combination with computed auxiliary features may be used by the prediction engine as appropriate).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello wherein the machine learning process comprises at least one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Regarding Claim 4
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
However, Morariu does not explicitly disclose: wherein applying the machine learning process comprises generating prediction confidences for next commands in the existing script.
Borzello teaches, in an analogous system: wherein applying the machine learning process comprises generating prediction confidences for next commands in the existing script ([0004] the prediction engine selects probable next actions. A confidence threshold can be provided to facilitate which commands are displayed. [0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello wherein applying the machine learning process comprises generating prediction confidences for next commands in the existing script. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Regarding Claim 5
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
However, Morariu does not explicitly disclose: wherein identifying a set of correlated commands comprises determining commands with a correlation over a threshold value.
Borzello teaches, in an analogous system: wherein identifying a set of correlated commands comprises determining commands with a correlation over a threshold value. ([0077] In a further embodiment, which is applicable to each of the command log views, a prediction confidence threshold is included. By using the confidence threshold, any column containing a probability over a certain threshold may be used to generate a set of predictions for a next command. If the predictions are below the certain confidence threshold, the system may not make a prediction. For example, given a confidence threshold of 50%, the system may only surface predictions when it is at least 50% confident a command will be chosen next).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello wherein identifying a set of correlated commands comprises determining commands with a correlation over a threshold value. One would have been motivated to do this modification because doing so would give the benefit of using any column containing a probability over a certain threshold to generate a set of predictions for a next command as taught by Borzello [0077].
Regarding Claim 6
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
However, Morariu does not explicitly disclose: further comprising: receiving additional command sets associated with respective additional users, and wherein applying the machine learning process comprises identifying correlations between the additional command sets associated with the additional users.
Borzello teaches, in an analogous system: further comprising: receiving additional command sets associated with respective additional users, ([0029] With the user's permission, the command usage may also be stored in a community log. The community log can contain an aggregate of information relating to command usage for a community of users);
and wherein applying the machine learning process comprises identifying correlations between the additional command sets associated with the additional users ([0043] The prediction engine 200 can receive data, determine probabilities, and output predictive commands based on the determined probabilities. The data used by the prediction engine 200 can include community data 210).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello further comprising: receiving additional command sets associated with respective additional users, and wherein applying the machine learning process comprises identifying correlations between the additional command sets associated with the additional users. One would have been motivated to do this modification because doing so would give the benefit of including community data as taught by Borzello [0043].
Regarding Claim 8
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
However, Morariu does not explicitly disclose: further comprising providing a second user interface comprising the recommended script to a second user.
Borzello teaches, in an analogous system: further comprising providing a second user interface comprising the recommended script to a second user ([0029] usage information from users of other computing devices, such as second user computing device 150 and third user computing device 152, can be communicated over the network 120 and stored in the database 140. [0097] According to an embodiment, when a user uses a productivity application, the system on which the application is running can track all the commands he/she executes and generate recommendations).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello further comprising providing a second user interface comprising the recommended script to a second user. One would have been motivated to do this modification because doing so would give the benefit of having a community log that can contain an aggregate of information relating to command usage for a community of users as taught by Borzello [0029].
Regarding Claim 9
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
Morariu further teaches: wherein providing the user interface further comprises: providing a user interface element to enable editing of the recommended script; and updating the recommended script in view of receiving editing to the recommended script ([Column 6, Paragraph 2] For example, the peripheral device adapter (114) may provide an interface to input/output devices, such as, for example, the display device (103), an external storage device, a keyboard, touch screen displays, and a mouse, among others, to create a user interface and/or access external sources of memory storage, for example. [Column 6, Paragraph 4] In one example, the VMM (152) may create, edit, start or stop the VMs (154-1, 154-2, 154-n)).
Regarding Claim 17
Morariu discloses: A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to: ([Column 5, Last Paragraph] Generally, the data storage device (104) may comprise a computer readable storage medium. For example, the data storage device (104) may be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the computer readable storage medium may include, for example, the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), flash memory, byte-addressable non-volatile memory (phase change memory, memristors), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing, among others. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program or any data for use by or in connection with an instruction execution system, apparatus, or device);
receive a set of manually executed commands of a virtual environment ([Column , Paragraph 5] In addition to the above, creating several brand new VMs to be configured with specific IP settings is a manual process often involving entering of IP settings and other details on each VM);
apply, by the processing device, a process to identify a set of correlated commands in view of the set of manually executed commands, wherein the set of correlated commands are associated with start-up of the virtual environment or a repeated management task of the virtual environment ([Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: External input corresponds to the set of manually executed commands. Response file corresponds to a set of correlated commands);
generate a recommended script comprising the set of correlated commands, wherein the recommended script is to automate execution of the set of correlated commands within the virtual environment ([Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: Text file corresponds to a recommended script comprising the set of correlated commands);
provide a user interface comprising a recommendation to update an existing script in view of the recommended script, wherein the existing script is a start-up script or a job scheduler script ([Column 6, Paragraph 2] For example, the peripheral device adapter (114) may provide an interface to input/output devices, such as, for example, the display device (103), an external storage device, a keyboard, touch screen displays, and a mouse, among others, to create a user interface and/or access external sources of memory storage, for example. [Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: Response file corresponds to the recommended script);
and update the existing script to include the recommended script to automate execution of the set of correlated commands in response to receiving an affirmative selection via the user interface, wherein to update the existing script the processing device is to: identify a position in the existing script to insert the recommended script ([Column 11, Paragraph 6]In one example, customizing (block 702) network settings of the offline main OS (156-1, 156-2, 156-n) can be performed by injecting an OS startup script into the system partition of the offline main OS (156-1, 156-2, 156-n). In one example, the OS startup script can take input in the form of embedded configurations or a specific configuration file on disk such as the virtual hard drives (162-1, 162-2, 162-n));
and write the recommended script to the identified position in the existing script; ([Column 12, Paragraph 1] Mechanics of injecting an SOS (FIG. 3, 320) startup script are specific to each OS (156-1, 156-2, 156-n) vendor and sometimes even vary between different versions of the same OS (156-1, 156-2, 156-n). Use of a virtual machine agent (158-1, 158-2, 158-n) in the main VM may offer a way to inject startup script to achieve OS vendor neutral logic of injecting a program that runs on OS startup. In one example, a VM (154-1, 154-2, 154-n) can have an HP SA agent installed, and an SA agent startup script can be injected to achieve OS vendor independence. The virtual machine agent is not explicitly shown in the FIG. 1 for brevity, but may be included as a VM application (158-1, 158-2, 158-n)).
However, Morariu does not explicitly disclose: machine learning, and wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame; determine a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame; set a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands; and executing the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands.
Borzello teaches, in an analogous system: machine learning ([0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering. In some cases, other methods for clustering data in combination with computed auxiliary features may be used by the prediction engine as appropriate);
wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame ([0076] The usage data may be collected over a period of time. In some cases, as time goes on, oldest data can be discarded and newer data can be incorporated to update the usage data. In some cases, historical patterns can be monitored and data from only designated time periods used. For example, usage data from summer time may be discarded and data from a school semester time period be used. The counts in the table may be batch updated or continuously updated. [0077] In a further embodiment, which is applicable to each of the command log views, a prediction confidence threshold is included. By using the confidence threshold, any column containing a probability over a certain threshold may be used to generate a set of predictions for a next command).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello to use machine learning and wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Brugali teaches, in an analogous system: determine a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame ([Page 405, Paragraph 1] A Virtual Environment (VE) is a :31) visual simulation that represents the computational geometric model of a real environment created with computer graphics techniques. A VE includes several virtual objects that represents the real objects that are found in the real environment. Some of that virtual objects can be virtual robots. Visual simulation can run much faster than the real robot, thus the operator can predict the final state of the robot before the command has been received and executed. The operator can then use this information for preparing the next command and issuing it in advance in order to compensate the transmission delay. [Page 405, Paragraph 2] For each task to be performed by one or more robots, one or more operators analyse the problem, plan the sequence of actions that solves it, verify the robot behavior in simulation, and finally, transmit the batch of commands to the remote real robot. Once defined, the batch of commands can be executed repeatedly every time the same task has to be performed. During the task execution, the operator plays the role of task supervisor. lf the environment. characteristics or the task specifications change, the operator must define a new sequence of commands and transfer it to the remote robot. Note: Batch of commands corresponds to the set of correlated commands. Operators, virtual robots correspond to the different devices within the virtual environment. Batch of commands can be executed repeatedly corresponds to determining a frequency of execution of the set of correlated commands and every time the same task has to be performed corresponds to second time frame. One or more operators analyse the problem, plan the sequence of actions that solves it, verify the robot behavior in simulation corresponds to wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands and it is within the first frame because it happens before it is sent to the real robot).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu and Borzello to incorporate the teachings of Brugali to determine a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame. One would have been motivated to do this modification because doing so would give the benefit of use this information for preparing the next command and issuing it in advance as taught by Brugali [Page 405, Paragraph 1].
Ferrandiz teaches, in an analogous system: set a timing configuration for executing the set of correlated commands, wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands ([Column 5, Lines 37-44] More specifically, batch jobs whose run frequencies are not expressed as daily run frequencies in the SLA (FIG. 3) are identified. This may include batch jobs that run a number of times daily, and those that run weekly, monthly, or at some other time periods. At operation 208, the identified batch jobs that have irregular run frequencies are regularized to batch jobs that have regular run frequencies. Note: Also see Figure 3 middle row showing setting a timing configuration. Job name 'B is batch job and corresponds to the set of correlated commands. Daily corresponds to a frequency of execution. 20 (start SLA) and 22 (End SLA) corresponds to a time interval. 2 corresponds to a predictable frequency associated with the execution of the set of correlated commands);
and execute the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands ([Column 8, Lines 24-42] FIG. 3 is an example table 300 illustrating a service level agreement (SLA) for plural batch jobs to be executed by the example third party system 130 of FIG. 1. The SLA table 300 may be in the business requirement database 106. From time to time the SLA table 300 may be updated via computer system 102, as described above in reference to FIG. 1. The SLA table includes one or more job name that identify respective batch jobs (e.g., batch job A, B, C, and the like) to be executed by the third party system 130. It is noted that the batch job name may be a descriptive alphanumeric string and the like. For each batch job, the following fields are specified: 1) frequency of execution; 2) number of time of execution; 2) start time (Start_SLA) after which the batch job is to begin; and 3) end time (End_SLA) before which the batch job is to end. For example, bath job A has a daily frequency with only one execution. Batch job B has a daily frequency with two executions (e.g., 10, 20), while batch job C has hourly executions (e.g., at 0, 4, 8, 12, 14, 16 and 20). Note: Also see Figure 3);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu, Borzello, and Brugali to incorporate the teachings of Ferrandiz to set a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands; and execute the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands. One would have been motivated to do this modification because doing so would give the benefit of plural batch jobs to be executed by the example third party system as taught by Ferrandiz [Column 8, Lines 24-42].
Regarding Claim 18
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The non-transitory computer-readable storage medium of claim 17 (as shown above).
However, Morariu does not explicitly disclose: wherein the machine learning process comprises one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process.
Borzello teaches, in an analogous system: wherein the machine learning process comprises one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process ([0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering. In some cases, other methods for clustering data in combination with computed auxiliary features may be used by the prediction engine as appropriate).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello wherein the machine learning process comprises at least one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Regarding Claim 19
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The non-transitory computer-readable storage medium of claim 17 (as shown above).
However, Morariu does not explicitly disclose: wherein applying the machine learning process comprises generating prediction confidences for next commands in a script.
Borzello teaches, in an analogous system: wherein applying the machine learning process comprises generating prediction confidences for next commands in a script ([0004] the prediction engine selects probable next actions. A confidence threshold can be provided to facilitate which commands are displayed. [0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello wherein applying the machine learning process comprises generating prediction confidences for next commands in a script. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Morariu et al (US 8990806 B2) in view of Borzello et al (US20140282178 A1) , Brugali et al (Trends in Software Environments for Networked Robotics, 2007), and Ferrandiz (US 8584122 B2) and further in view of Donovan et al (US 20170193179 A1).
Regarding Claim 3
The system of Morariu, Borzello, Brugali, and Ferrandiz discloses: The method of claim 1 (as shown above).
However, the system of Morariu, Borzello, Brugali, and Ferrandiz does not explicitly disclose: wherein the recommended script is one of an init script or a cron script.
Donovan teaches, in an analogous system: wherein the recommended script is one of an init script or a cron script ([0040] In an embodiment, the web scraper is hosted as a service which executes scraping scripts 110 on the trigger of a ReST API call. Cron jobs are set to call scraper APIs at a preset interval which executes the script and fetch data. “Cron” may be a time-based job scheduler, for example in Unix-like operating systems (such as Linux, FreeBSD, Mac OS etc. . . . ). Such time-based jobs or tasks may be referred to as “cron jobs”. A cron “daemon” may run on such operating systems. A daemon may refer to a program that runs in the background all the time, usually initiated by the operating system. In an embodiment herein, a cron daemon is responsible for launching cron jobs on schedule).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu, Borzello, Brugali, and Ferrandiz to incorporate the teachings of Donovan wherein the recommended script is one of an init script or a cron script. One would have been motivated to do this modification because doing so would give the benefit of launching cron jobs on schedule as taught by Donovan [0040].
Claims 11-13 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Morariu et al (US 8990806 B2) in view of Borzello et al (US20140282178 A1) and Guo et al (US 9401925 B1) and further in view of Brugali et al (Trends in Software Environments for Networked Robotics, 2007) and Ferrandiz (US 8584122 B2).
Regarding Claim 11
Morariu discloses: A system comprising: a memory device ([Column 5, Paragraph 3] The data storage device (104) may include various types of memory devices, including volatile and nonvolatile memory);
and a processing device operatively coupled to the memory device, the processing device to ([Column 5, Paragraph 3] The data storage device (104) of the compute resources (101), may store data such as executable code. This executable code is processed and produced by the processor (102). The data storage device (104) may include various types of memory devices, including volatile and nonvolatile memory):
receive commands of a plurality of virtual environments in a computer network ([Column 3, Paragraph 5] In addition to the above, creating several brand new VMs to be configured with specific IP settings is a manual process often involving entering of IP settings and other details on each VM. [Column 6, Paragraph 2] The virtual network adapters (168-1, 168-2, 168-n) provide each VM (154-1, 154-2, 154-n) with connectivity to a network such as an internet and an intranet, among other networks);
analyze the commands to identify a set of correlated commands within the virtual environments, wherein the set of correlated commands are associated with start-up of the virtual environment or a repeated management task of the virtual environment ([Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: External input corresponds to the recorded commands. Response file corresponds to a set of correlated commands);
generate a recommended script comprising the set of correlated commands, wherein the recommended script is to automate execution of the set of correlated commands within the virtual environment ([Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: Text file corresponds to a recommended script comprising the set of correlated commands);
provide a user interface comprising the recommended script ([Column 6, Paragraph 2] For example, the peripheral device adapter (114) may provide an interface to input/output devices, such as, for example, the display device (103), an external storage device, a keyboard, touch screen displays, and a mouse, among others, to create a user interface and/or access external sources of memory storage, for example. [Column 10, Paragraph 5] The method (500) of FIG. 5 proceeds by packaging (block 504) the external input to be supplied to the SOS (FIG. 3, 320) on startup. The external input may be referred to as a response file (FIG. 2, 232), and is created, as described above, by the response file creation module (230). In one example, the response file (232) may be stored in a text file and packaged into any non-volatile storage media such as, for example, the virtual floppy drives (164-1, 164-2, 164-n), virtual universal serial bus (USB) drives, and the virtual HD (162-1, 162-2, 162-n), among others. In another example, the response file (FIG. 2, 232) may be supplied using virtual COM ports (not shown in FIG. 1 for brevity). Note: Response file corresponds to the recommended script);
and update a configuration of the computer network to include the recommended script to automate execution of the set of correlated commands in response to an affirmative selection via the user interface, wherein to update the configuration of the computer network the processing device is to: identify a position in an existing script of the configuration to insert the recommended script, wherein the existing script is a start-up script or a job scheduler script ([Column 11, Paragraph 6]In one example, customizing (block 702) network settings of the offline main OS (156-1, 156-2, 156-n) can be performed by injecting an OS startup script into the system partition of the offline main OS (156-1, 156-2, 156-n). In one example, the OS startup script can take input in the form of embedded configurations or a specific configuration file on disk such as the virtual hard drives (162-1, 162-2, 162-n));
and write the recommended script to the identified position in the existing script in response to start-up of the virtual environment ([Column 12, Paragraph 1] Mechanics of injecting an SOS (FIG. 3, 320) startup script are specific to each OS (156-1, 156-2, 156-n) vendor and sometimes even vary between different versions of the same OS (156-1, 156-2, 156-n). Use of a virtual machine agent (158-1, 158-2, 158-n) in the main VM may offer a way to inject startup script to achieve OS vendor neutral logic of injecting a program that runs on OS startup. In one example, a VM (154-1, 154-2, 154-n) can have an HP SA agent installed, and an SA agent startup script can be injected to achieve OS vendor independence. The virtual machine agent is not explicitly shown in the FIG. 1 for brevity, but may be included as a VM application (158-1, 158-2, 158-n)).
However, Morariu does not explicitly disclose: recorded commands; machine learning, and wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame; determine a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands within the first time frame; set a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands; and execute the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands.
Guo teaches, in an analogous system: recorded commands ([Column 9, Last Paragraph ] The recorded executed command may be analogous to the recorded commands of administrators).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Morariu to incorporate the teachings of Guo to use recorded commands. One would have been motivated to do this modification because doing so would give the benefit of accessing user history, which may indicate a history of user behavior, including executed commands as taught by Guo [Column 9, Last Paragraph].
Borzello teaches, in an analogous system: machine learning ([0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering. In some cases, other methods for clustering data in combination with computed auxiliary features may be used by the prediction engine as appropriate);
wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame ([0076] The usage data may be collected over a period of time. In some cases, as time goes on, oldest data can be discarded and newer data can be incorporated to update the usage data. In some cases, historical patterns can be monitored and data from only designated time periods used. For example, usage data from summer time may be discarded and data from a school semester time period be used. The counts in the table may be batch updated or continuously updated. [0077] In a further embodiment, which is applicable to each of the command log views, a prediction confidence threshold is included. By using the confidence threshold, any column containing a probability over a certain threshold may be used to generate a set of predictions for a next command).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello to use machine learning and wherein to identify the set of correlated commands the machine learning process determines that a likelihood that each command of the set of correlated commands follows one another exceeds a threshold confidence level and are executed together within a first time frame. The counts in the table may be batch updated or continuously updated. [0077] In a further embodiment, which is applicable to each of the command log views, a prediction confidence threshold is included. By using the confidence threshold, any column containing a probability over a certain threshold may be used to generate a set of predictions for a next command. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Brugali teaches, in an analogous system: determine a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame ([Page 405, Paragraph 1] A Virtual Environment (VE) is a :31) visual simulation that represents the computational geometric model of a real environment created with computer graphics techniques. A VE includes several virtual objects that represents the real objects that are found in the real environment. Some of that virtual objects can be virtual robots. Visual simulation can run much faster than the real robot, thus the operator can predict the final state of the robot before the command has been received and executed. The operator can then use this information for preparing the next command and issuing it in advance in order to compensate the transmission delay. [Page 405, Paragraph 2] For each task to be performed by one or more robots, one or more operators analyse the problem, plan the sequence of actions that solves it, verify the robot behavior in simulation, and finally, transmit the batch of commands to the remote real robot. Once defined, the batch of commands can be executed repeatedly every time the same task has to be performed. During the task execution, the operator plays the role of task supervisor. lf the environment. characteristics or the task specifications change, the operator must define a new sequence of commands and transfer it to the remote robot. Note: Batch of commands corresponds to the set of correlated commands. Operators, virtual robots correspond to the different devices within the virtual environment. Batch of commands can be executed repeatedly corresponds to determining a frequency of execution of the set of correlated commands and every time the same task has to be performed corresponds to second time frame. One or more operators analyse the problem, plan the sequence of actions that solves it, verify the robot behavior in simulation corresponds to wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands and it is within the first frame because it happens before it is sent to the real robot).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu and Borzello to incorporate the teachings of Brugali to determine a frequency of execution of the set of correlated commands over a second time frame, wherein the frequency indicates a predictable frequency associated with the execution of the set of correlated commands from different devices within the virtual environment within the first time frame. One would have been motivated to do this modification because doing so would give the benefit of use this information for preparing the next command and issuing it in advance as taught by Brugali [Page 405, Paragraph 1].
Ferrandiz teaches, in an analogous system: set a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands ([Column 5, Lines 37-44] More specifically, batch jobs whose run frequencies are not expressed as daily run frequencies in the SLA (FIG. 3) are identified. This may include batch jobs that run a number of times daily, and those that run weekly, monthly, or at some other time periods. At operation 208, the identified batch jobs that have irregular run frequencies are regularized to batch jobs that have regular run frequencies. Note: Also see Figure 3 middle row showing setting a timing configuration. Job name 'B is batch job and corresponds to the set of correlated commands. Daily corresponds to a frequency of execution. 20 (start SLA) and 22 (End SLA) corresponds to a time interval. 2 corresponds to a predictable frequency associated with the execution of the set of correlated commands);
and execute the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands ([Column 8, Lines 24-42] FIG. 3 is an example table 300 illustrating a service level agreement (SLA) for plural batch jobs to be executed by the example third party system 130 of FIG. 1. The SLA table 300 may be in the business requirement database 106. From time to time the SLA table 300 may be updated via computer system 102, as described above in reference to FIG. 1. The SLA table includes one or more job name that identify respective batch jobs (e.g., batch job A, B, C, and the like) to be executed by the third party system 130. It is noted that the batch job name may be a descriptive alphanumeric string and the like. For each batch job, the following fields are specified: 1) frequency of execution; 2) number of time of execution; 2) start time (Start_SLA) after which the batch job is to begin; and 3) end time (End_SLA) before which the batch job is to end. For example, bath job A has a daily frequency with only one execution. Batch job B has a daily frequency with two executions (e.g., 10, 20), while batch job C has hourly executions (e.g., at 0, 4, 8, 12, 14, 16 and 20). Note: Also see Figure 3).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu, Guo, Borzello, and Brugali to incorporate the teachings of Ferrandiz to set a timing configuration for executing the set of correlated commands wherein the timing configuration comprises a time interval between the execution of the set of correlated commands associated with the predictable frequency of execution of the set of correlated commands; and execute the existing script, as updated with the recommended script, in view of the frequency of execution of the set of correlated commands and the timing configuration for executing the set of correlated commands. One would have been motivated to do this modification because doing so would give the benefit of plural batch jobs to be executed by the example third party system as taught by Ferrandiz [Column 8, Lines 24-42].
Regarding Claim 12
The system of Morariu, Guo, Borzello, Brugali, and Ferrandiz discloses: The system of claim 11 (as shown above).
Morariu further teaches: wherein, in response to a rejection of the recommended script, the processing device is further to: maintain a configuration of the computer network ([Column 2, Last Paragraph] In addition to the above, when creating a new VM from an existing VM that has a static internet protocol (IP) configuration on the network adapters, the new VM may create IP conflicts on the network if brought up on the same network as the source VM. IP conflicts result in disrupting services offered by other servers running on the network, and the resulting problem(s) are very hard to diagnose. Previously, as described above, administrators manually connect to the [Column 3, Paragraph 1] VM's console using virtualization software, and reconfigure the network adapters in order to overcome the IP conflict).
Regarding Claim 13
The system of Morariu, Guo, Borzello, Brugali, and Ferrandiz discloses: The system of claim 11 (as shown above).
However, the system of Morariu, Guo, Brugali, and Ferrandiz does not explicitly disclose: wherein analyzing the recorded commands comprises applying a machine learning process to the recorded commands, wherein the machine learning process comprises one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process.
Borzello further teaches, in an analogous system: wherein analyzing the recorded commands comprises applying a machine learning process to the recorded commands, wherein the machine learning process comprises one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process ([0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering. In some cases, other methods for clustering data in combination with computed auxiliary features may be used by the prediction engine as appropriate).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Morariu to incorporate the teachings of Borzello wherein analyzing the recorded commands comprises applying a machine learning process to the recorded commands, wherein the machine learning process comprises one of a decision tree learning process, a neural network, a regression model, a deep learning network, or a probabilistic semantic analysis process. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Regarding Claim 15
The system of Morariu, Guo, Borzello, Brugali, and Ferrandiz discloses: The system of claim 13 (as shown above).
However, the system of Morariu, Guo, Brugali, and Ferrandiz does not explicitly disclose: wherein to apply the machine learning process, the processing device is further to generate prediction confidences for next commands in a script.
Borzello further teaches, in an analogous system: wherein to apply the machine learning process, the processing device is further to generate prediction confidences for next commands in a script ([0004] the prediction engine selects probable next actions. A confidence threshold can be provided to facilitate which commands are displayed. [0106] The other methods that can be used by the prediction engine when acting on user specific and community data include, but are not limited to, hierarchical and non-hierarchical Bayesian methods; supervised learning methods such as Support vector Machines, neural nets, bagged/boosted or randomized decision trees, and k-nearest neighbor; and unsupervised methods such as k-means clustering and agglomerative clustering).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu, Guo, Brugali, and Ferrandiz to incorporate the teachings of Borzello wherein to apply the machine learning process, the processing device is further to generate prediction confidences for next commands in a script. One would have been motivated to do this modification because doing so would give the benefit of using other methods of performing the predictions as taught by Borzello [0106].
Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Morariu et al (US 8990806 B2) in view of Borzello et al (US20140282178 A1), Guo et al (US 9401925 B1) , Brugali et al (Trends in Software Environments for Networked Robotics, 2007), and Ferrandiz (US 8584122 B2) and further in view of Donovan et al (US 20170193179 A1).
Regarding Claim 14
The system of Morariu, Guo, Borzello, Brugali, and Ferrandiz discloses: The system of claim 11 (as shown above).
However, the system of Morariu, Guo, Borzello, Brugali, and Ferrandiz does not explicitly disclose: wherein the recommended script is one of an init script or a cron script.
Donovan further teaches, in an analogous system: wherein the recommended script is one of an init script or a cron script ([0040] In an embodiment, the web scraper is hosted as a service which executes scraping scripts 110 on the trigger of a ReST API call. Cron jobs are set to call scraper APIs at a preset interval which executes the script and fetch data. “Cron” may be a time-based job scheduler, for example in Unix-like operating systems (such as Linux, FreeBSD, Mac OS etc. . . . ). Such time-based jobs or tasks may be referred to as “cron jobs”. A cron “daemon” may run on such operating systems. A daemon may refer to a program that runs in the background all the time, usually initiated by the operating system. In an embodiment herein, a cron daemon is responsible for launching cron jobs on schedule).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Morariu, Guo, Borzello, Brugali, and Ferrandiz to incorporate the teachings of Donovan wherein the recommended script is one of an init script or a cron script. One would have been motivated to do this modification because doing so would give the benefit of launching cron jobs on schedule as taught by Donovan [0040].
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Kanodia et al (US 7,894.918 B2) discloses Systems for analyzing batch processes. It is directed to a batch system for managing and analyzing batch runs of a batch process in a process cell. The batch management routines are operable to schedule batch runs and create and edit recipes for the batch process. The batch analysis routines include a batch filter routine, a golden batch routine, a cycle time analysis routine, and a report wizard routine.
Kashyap et al (US 9,146,555 B2) discloses System And Method For Managing Life-cycle Of Batch In Production Control System In Real Time. The batch production request generated by the enterprise management system is received by the MES wherein the MES forwards the batch production request to the TEA system. The TEA system obtains information required to execute the batch production request from the production control system. Upon obtaining the information the TEA system instructs an operator to create the batch in the production control system. The production control system confirms the creation of the batch and updates real time status of the batch to the TEA system.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHAITANYA RAMESH JAYAKUMAR whose telephone number is (571)272-3369. The examiner can normally be reached Mon-Fri 9am-1pm.
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, Omar Fernandez Rivas can be reached at (571)272-2589. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/C.R.J./Examiner, Art Unit 2128
/OMAR F FERNANDEZ RIVAS/Supervisory Patent Examiner, Art Unit 2128