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 .
Specification
The lengthy specification has not been checked to the extent necessary to
determine the presence of all possible minor errors. Applicant's cooperation is
requested in correcting any errors of which applicant may become aware in the
specification.
Examiner Notes
Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner. The entire reference is considered to provide disclosure relating to the claimed invention. The claims & only the claims form the metes & bounds of the invention. Office personnel are to give the claims their broadest reasonable interpretation in light of the supporting disclosure. Unclaimed limitations appearing in the specification are not read into the claim. Prior art was referenced using terminology familiar to one of ordinary skill in the art. Such an approach is broad in concept and can be either explicit or implicit in meaning. Examiner's Notes are provided with the cited references to assist the applicant to better understand how the examiner interprets the applied prior art. Such comments are entirely consistent with the intent & spirit of compact prosecution.
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) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Phatak et al (US 2018/0060456 A1), hereinafter Phatak, in view of Pacifici et al (US 2009/0077090 A1), hereinafter Pacifici.
Claim 1. A method performed by a hardware-in-the-loop (HIL) simulation platform, the method comprising:
Phatak discloses receiving, by a launcher application of the HIL simulation platform, component information regarding a plurality of software components of an HIL simulation environment,
Phatak: [0065] “At 203, simulation metadata 224 may be stored in the storage and/or database 118. For example, the web server 214 may receive information about the simulation configuration as the user job inputs 216, and the database manager 116 may store the configuration information in the storage and/or database 118 as the simulation metadata 224…..”
See [0044] for additional detail of HIL.
Phatak discloses wherein the component information includes: interconnectivity information indicating an interdependency between two or more software components of the plurality of software components;
Phatak: [0037] In some cases, the simulation platform may be used to configure and execute simulations that include concurrent execution of multiple simulators of different types. For example, the simulation platform may enable simulating the function of individual components, simulating the interaction of multiple different components, simulating systems, simulating multiple systems, simulating entire vehicles, or the like. The simulation platform may establish a proper connection type between selected simulators for simulating the real-world connection between the corresponding real-world components.”
Phatak discloses receiving a request to perform the HIL simulation; and
Phatak: [0063] “… The web server 214 may provide the web interface 120 discussed above with respect to FIG. 1, and the user 136 may use the web interface to configure a simulation job for execution by the simulation platform 108.”
executing, based on the request, a computer model to perform the HIL simulation,
Phatak: [0069] “At 207, the simulation execution master 238 may delegate the job to a simulation execution worker 244. …”
See [0066-0068] for additional detail of executing model.
Phatak discloses wherein executing the computer model to perform the HIL simulation comprises: launching, using the launcher application, the plurality of software components in an order that is based on the sequence.
Phatak: [0072] “At 210, each simulation controller 248 may initialize the models/simulators, launch the simulation, monitor the simulation during execution of the simulation, and perform post-processing following completion of the simulation. The simulation execution worker 244 may coordinate the operation of the respective simulation controllers 248(1)-248(K), such as for instructing the initializing and launching of the simulation. Thus, the simulation execution worker 244 may manage the execution of the simulation across all participating simulation computing devices 252(1)-252(K).”
Phatak does not appear to explicitly disclose sequence information indicating a sequence for launching the plurality of software components during an HIL simulation,
However, Pacifici discloses wherein the component information includes: sequence information indicating a sequence for launching the plurality of software components during an HIL simulation, [0009] “… The process identifies metadata describing a set of dependencies of a set of software components in the distributed software application from data associated with the set of software components. The process then identifies a sequence for changing an operational state of the set of software components of the distributed software application from the metadata to form an identified sequence. Thereafter, the process chances the operational state of the set of software components using the identified sequence.”
Phatak and Pacifici are analogous art because they are from the “same field of endeavor” software application.
Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Phatak and Pacifici before him or her, to modify the simulation of Phatak to include the identified sequence of operation feature of Pacifici because this combination improves the efficient of the simulation.
The suggestion/motivation for doing so would have been Pacifici: [0008] “One currently used method for deriving a process for properly stopping and starting a set of components of a distributed software application requires a systems administrator with intimate knowledge of the distributed software application to derive a sequence for stopping and restarting individual software components. This method may be a time consuming process if the distributed software application includes many software components. Furthermore, as a distributed software application is upgraded and modified, dependencies may change, thereby requiring the systems administrator to continually modify the process. This method is inefficient and may lead to costly errors and unnecessary downtime.”
Therefore, it would have been obvious to combine Phatak and Pacifici to obtain the invention as specified in the instant claim(s).
Claim 2. The method of claim 1, further comprising: Phatak discloses monitoring, by the launcher application, the plurality of software components to determine whether the plurality of software components failed to launch; and providing a notification based on determining that a software component, of the plurality of software components, failed to launch.
Phatak [0061] “…. As discussed additionally below, the simulation platform 108 may provide automated simulation setup, initiation, monitoring, and reporting; simplified, time-efficient simulation processes accessible from anywhere on the secure web connection; easy-to-use, informative GUI; HPC cloud scalability, security, and flexibility; ability to test multiple high-fidelity virtual ECUs and other components; enhanced collaboration tools; and industry-tested security capabilities.”
Phatak [0164] “As one example, if one of the simulators fails, the corresponding simulation controller 248 may notify the simulation execution worker 244(1) of the failure so that the simulation execution worker 244(1) may shutdown the remainder of the simulation and release the computing resources for other uses until the simulation can be corrected, restarted, or the like. Alternatively, the execution worker 244(1) may determine that the failure occurred after the execution of the particular model on the failed simulator was complete, and may continue execution of the other parts of the simulation….”
Claim 3, 11 and 16
Phatak discloses wherein receiving the request comprises: receiving the request based on a single input from a user interface element of the launcher application, wherein the plurality of software components are launched, in the order, based on the single input.
Phatak
PNG
media_image1.png
602
908
media_image1.png
Greyscale
Claim 4, 13
Phatak discloses wherein receiving the component information comprises: receiving configuration information for a particular software component of the plurality of software components,
Phatak [0097] “The simulation platform and GUI herein may provide a streamlined simulation configuration process that includes dragging and dropping simulators into the simulation workspace; connecting simulators to define simulation relationships between tools; selecting the connection types between the simulators; uploading simulation design configurations; load simulation models; setting a global simulation time and step size; and initiating the simulation with a single keystroke or other user input. The GUI herein simplifies the simulation process, guides users with straight-forward instructions, enables drag-and-drop functionality, and provides a visual indicator of where the user is in the configuration process. Users are able to track progress by viewing their simulations in a queue and monitoring completion percentages once initiated. In addition, users may review consolidated logs and results, and may initiate parameter sweeps and re-runs.”
wherein the configuration information includes one or more of file path information identifying a file path for the particular software component, one or more parameters used when launching the particular software component, and log file information identifying a location of a log file for the particular software component.”
Phatak [0065] “At 203, simulation metadata 224 may be stored in the storage and/or database 118. For example, the web server 214 may receive information about the simulation configuration as the user job inputs 216, and the database manager 116 may store the configuration information in the storage and/or database 118 as the simulation metadata 224. In some examples, the storage and/or database 118 may be any type of object storage, while in other examples, the storage and/or database 118 may include an actual database structure and components, such as a document-oriented database, or other type of database.”
Phatak [0049] “In addition, a database manager 116 may access storage 118, which may include a database configured to store and provide information for the simulation platform 108. Examples of information maintained in the storage 118 and managed by the database manager 116 may include simulation models, user information, license information, simulation logs, simulation results, and the like. ….”
Claim 5 and 19
Phatak discloses wherein the HIL simulation is a first HIL simulation, wherein the request is a first request, and wherein the method further comprises: storing the component information as a configuration file for the launcher application;
Phatak [0073] “At 211, during or following completion of the simulation job, the simulation controllers 248 and/or the simulation execution worker 244 may push updates 258 to the database manager 116 and storage 118 and/or to the file server 222. For instance, the simulation status or results may be stored in the storage and/or database 118. As mentioned above, in some instances the file server 222 may serve as a controller for the storage/database 118 in addition to, or as part of the database manager 116.” See [0081] and Fig. 5 for example of launcher application.
Phatak discloses receiving a second request to perform a second HIL simulation;
obtaining, using the launcher application and based on the second request, the configuration file;
Phatak [0089] “FIG. 9 illustrates an example of the GUI 600 of FIG. 6 that may be presented for verifying port configurations according to some implementations. As one example, suppose that following selection of the model files for the first simulator 602 and the second simulator 604 [correspond to first and second HIL simulation], the users select the next button 436. In response, the system may determine whether the ports have been configured for the simulators 602 and 604. [correspond to obtain configuration file] For instance, when a virtual CAN bus is used in the simulation, the ports may be configured by being defined with a direction and a data type. Accordingly, if a virtual CAN bus is used and the ports have not been configured, the system may present a pop-up window 902 with a prompt for the user to configure the ports for the simulators 602 and 604. If the user has already configured the ports, the user may select a virtual control 940 go to the next step; on the other hand, if the user has not configured the ports, the user may select a “configure ports” virtual control 906 to launch a port configuration utility, such as in a new browser tab. For instance, as discussed additionally below, for simulations that include multiple vECUs, a virtual CAN bus may be configured and may use TCP/IP protocol, or the like, to enable communications between the multiple vECUs. When the user has completed configuring the ports, the user may proceed to the next stage of the simulation creation.”
Pacifici discloses launching, using the launcher application and based on the second request, the plurality of software components in an order that is based on the sequence identified by the configuration file.
Pacifici [0041] “An identified sequence for changing the operational state of the set of software components is an ordering of the software components of the set of software components that forms the distributed software application. The order in which software components are listed in the identified sequence is based on a dependency of a software component on other software components in the set of software components. A dependency is a relationship between two or more software components. In particular, a first software component that is dependent upon a second software component requires or depends upon the second software component in order to properly function.”
Claim 6. The method of claim 1, further comprising: Phatak discloses controlling, by the launcher application, the interdependency of the two or more software components based on the interconnectivity information.
Phatak: [0037] “In some cases, the simulation platform may be used to configure and execute simulations that include concurrent execution of multiple simulators of different types. For example, the simulation platform may enable simulating the function of individual components, simulating the interaction of multiple different components, simulating systems, simulating multiple systems, simulating entire vehicles, or the like. The simulation platform may establish a proper connection type between selected simulators for simulating the real-world connection between the corresponding real-world components.”
Claim 7, 14
Pacifici discloses receiving, by the launcher application, information regarding one or more additional software components; updating, by the launcher application, the component information to generate updated component information,
Pacifici [0117] “Using this method, apparatus, and computer program product, an operational state of a distributed software application may be easily and efficiently changed. A systems administrator or other user would not be required to develop a detailed sequence for changing the operational state of the software components of the distributed software application. Further, modifications of the distributed software application, such as the removal or addition of software components may be easily incorporated into the sequence by altering the metadata of the software components dependent upon the removed or added software component. Thus, the exemplary embodiments provide for a simplified method of managing a distributed software application.”
Pacifici discloses wherein the updated component information identifies the one or more additional software components, and wherein the updated component information includes updated sequence information indicating an updated sequence for launching the plurality of software components and the one or more additional software components;
Pacifici [0108] “Next, the process makes the determination as to whether the user has modified the sequence for changing the operational state of the set of software components (step 916). If the process makes the determination that the user has modified the sequence for changing the operational state of the set of software components, then the process alters the sequencing data structure according to the user's modifications (step 918). Thereafter, the process stores the sequencing data structure (step 920). The sequencing data structure may be stored in a storage device, such as storage 108 in FIG. 1 or on a remote server, such as server 608 in FIG. 6. The process then continues to step 906.”
Phatak discloses launching, during another HIL simulation, the plurality of software components and the one or more additional software components in an order that is based on the updated sequence.
Phatak: [0072] “At 210, each simulation controller 248 may initialize the models/simulators, launch the simulation, monitor the simulation during execution of the simulation, and perform post-processing following completion of the simulation. The simulation execution worker 244 may coordinate the operation of the respective simulation controllers 248(1)-248(K), such as for instructing the initializing and launching of the simulation. Thus, the simulation execution worker 244 may manage the execution of the simulation across all participating simulation computing devices 252(1)-252(K).”
Claim 8. A system, comprising: Phatak discloses A hardware-in-the-loop (HIL) simulation platform configured to:
Phatak: [0047] “FIG. 1 illustrates an example architecture of a system 100 for scalable simulation according to some implementations. In this example, network computing resources 102 may include a plurality of computing devices 104 and associated storage 106. As discussed additionally below, the plurality of computing devices 104 may include one or more servers or other types of computing devices that may be embodied in any number of ways. …”
Phatak discloses receive, by a launcher application of the HIL simulation platform, component information regarding a plurality of software components of an HIL simulation environment,
Phatak: [0065] “At 203, simulation metadata 224 may be stored in the storage and/or database 118. For example, the web server 214 may receive information about the simulation configuration as the user job inputs 216, and the database manager 116 may store the configuration information in the storage and/or database 118 as the simulation metadata 224…..”
See [0044] for additional detail of HIL.
Phatak discloses wherein the component information includes: interconnectivity information indicating an interdependency between two or more software components of the plurality of software components;
Phatak: [0037] In some cases, the simulation platform may be used to configure and execute simulations that include concurrent execution of multiple simulators of different types. For example, the simulation platform may enable simulating the function of individual components, simulating the interaction of multiple different components, simulating systems, simulating multiple systems, simulating entire vehicles, or the like. The simulation platform may establish a proper connection type between selected simulators for simulating the real-world connection between the corresponding real-world components.”
launch, using the launcher application, the plurality of software components in an order that is based on the sequence,
Phatak: [0072] “At 210, each simulation controller 248 may initialize the models/simulators, launch the simulation, monitor the simulation during execution of the simulation, and perform post-processing following completion of the simulation. The simulation execution worker 244 may coordinate the operation of the respective simulation controllers 248(1)-248(K), such as for instructing the initializing and launching of the simulation. Thus, the simulation execution worker 244 may manage the execution
Phatak discloses wherein the plurality of software components are launched during the HIL simulation; monitor, by the launcher application, the plurality of software components to determine a failure associated with launching the plurality of software components; and perform, by the launcher application, an action based on monitoring the plurality of software components.
Phatak [0061] “…. As discussed additionally below, the simulation platform 108 may provide automated simulation setup, initiation, monitoring, and reporting; simplified, time-efficient simulation processes accessible from anywhere on the secure web connection; easy-to-use, informative GUI; HPC cloud scalability, security, and flexibility; ability to test multiple high-fidelity virtual ECUs and other components; enhanced collaboration tools; and industry-tested security capabilities.”
Phatak [0164] “As one example, if one of the simulators fails, the corresponding simulation controller 248 may notify the simulation execution worker 244(1) of the failure so that the simulation execution worker 244(1) may shutdown the remainder of the simulation and release the computing resources for other uses until the simulation can be corrected, restarted, or the like. [correspond to action] Alternatively, the execution worker 244(1) may determine that the failure occurred after the execution of the particular model on the failed simulator was complete, and may continue execution of the other parts of the simulation….”
Phatak does not appear to explicitly disclose sequence information indicating a sequence for launching the plurality of software components during an HIL simulation,
However, Pacifici discloses wherein the component information includes: sequence information indicating a sequence for launching the plurality of software components during an HIL simulation, [0009] “… The process identifies metadata describing a set of dependencies of a set of software components in the distributed software application from data associated with the set of software components. The process then identifies a sequence for changing an operational state of the set of software components of the distributed software application from the metadata to form an identified sequence. Thereafter, the process chances the operational state of the set of software components using the identified sequence.”
Phatak and Pacifici are analogous art because they are from the “same field of endeavor” software application.
Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Phatak and Pacifici before him or her, to modify the simulation of Phatak to include the identified sequence of operation feature of Pacifici because this combination improve the efficient of the simulation.
The suggestion/motivation for doing so would have been Pacifici: [0008] “One currently used method for deriving a process for properly stopping and starting a set of components of a distributed software application requires a systems administrator with intimate knowledge of the distributed software application to derive a sequence for stopping and restarting individual software components. This method may be a time consuming process if the distributed software application includes many software components. Furthermore, as a distributed software application is upgraded and modified, dependencies may change, thereby requiring the systems administrator to continually modify the process. This method is inefficient and may lead to costly errors and unnecessary downtime.”
Therefore, it would have been obvious to combine Phatak and Pacifici to obtain the invention as specified in the instant claim(s).
Regarding Claim 15, the same ground of rejection is made as discussed above for substantially similar rationale of claim 8.
Claim 9. The system of claim 8, Phatak discloses wherein, to perform the action, the HIL simulation platform is further configured to: provide, using the launcher application, a notification based on determining that a software component, of the plurality of software components, failed to launch.
Phatak [0164] “As one example, if one of the simulators fails, the corresponding simulation controller 248 may notify the simulation execution worker 244(1) of the failure so that the simulation execution worker 244(1) may shutdown the remainder of the simulation and release the computing resources for other uses until the simulation can be corrected, restarted, or the like. Alternatively, the execution worker 244(1) may determine that the failure occurred after the execution of the particular model on the failed simulator was complete, and may continue execution of the other parts of the simulation….”
Claim 10. The system of claim 8, Phatak discloses wherein, to perform the action, the HIL simulation platform is further configured to: provide, using the launcher application, a notification based on determining that a software component, of the plurality of software components, failed after being launched.
Phatak [0164] “As one example, if one of the simulators fails, the corresponding simulation controller 248 may notify the simulation execution worker 244(1) of the failure so that the simulation execution worker 244(1) may shutdown the remainder of the simulation and release the computing resources for other uses until the simulation can be corrected, restarted, or the like. Alternatively, the execution worker 244(1) may determine that the failure occurred after the execution of the particular model on the failed simulator was complete, and may continue execution of the other parts of the simulation….”
Claim 12. The system of claim 8, Phatak discloses wherein the plurality of software components includes one or more of a simulator or an emulator.
Phatak [0097] “The simulation platform and GUI herein may provide a streamlined simulation configuration process that includes dragging and dropping simulators into the simulation workspace; connecting simulators to define simulation relationships between tools; selecting the connection types between the simulators; uploading simulation design configurations; load simulation models; setting a global simulation time and step size; and initiating the simulation with a single keystroke or other user input. The GUI herein simplifies the simulation process, guides users with straight-forward instructions, enables drag-and-drop functionality, and provides a visual indicator of where the user is in the configuration process. Users are able to track progress by viewing their simulations in a queue and monitoring completion percentages once initiated. In addition, users may review consolidated logs and results, and may initiate parameter sweeps and re-runs.”
Claim 17. The non-transitory computer-readable medium of claim 15, Phatak discloses wherein the one or more instructions further cause the device to: perform, by the launcher application, an action based on monitoring the plurality of software components.
Phatak [0061] “…. As discussed additionally below, the simulation platform 108 may provide automated simulation setup, initiation, monitoring, and reporting; simplified, time-efficient simulation processes accessible from anywhere on the secure web connection; easy-to-use, informative GUI; HPC cloud scalability, security, and flexibility; ability to test multiple high-fidelity virtual ECUs and other components; enhanced collaboration tools; and industry-tested security capabilities.”
Phatak [0097] “The simulation platform and GUI herein may provide a streamlined simulation configuration process that includes dragging and dropping simulators into the simulation workspace; connecting simulators to define simulation relationships between tools; selecting the connection types between the simulators; uploading simulation design configurations; load simulation models; setting a global simulation time and step size; and initiating the simulation with a single keystroke or other user input. The GUI herein simplifies the simulation process, guides users with straight-forward instructions, enables drag-and-drop functionality, and provides a visual indicator of where the user is in the configuration process. Users are able to track progress by viewing their simulations in a queue and monitoring completion percentages once initiated. In addition, users may review consolidated logs and results, and may initiate parameter sweeps and re-runs.”
Claim 18. The non-transitory computer-readable medium of claim 17, Phatak discloses wherein the one or more instructions, that cause the device to perform the action, cause the device to: provide, using the launcher application, a first notification based on determining that a software component, of the plurality of software components, failed to launch; or provide, using the launcher application, a second notification based on determining that the software component experienced a failure after being launched.
Phatak [0164] “As one example, if one of the simulators fails, the corresponding simulation controller 248 may notify the simulation execution worker 244(1) of the failure so that the simulation execution worker 244(1) may shutdown the remainder of the simulation and release the computing resources for other uses until the simulation can be corrected, restarted, or the like. Alternatively, the execution worker 244(1) may determine that the failure occurred after the execution of the particular model on the failed simulator was complete, and may continue execution of the other parts of the simulation….”
Claim 20. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions further cause the device to:
Phatak discloses receive configuration information for a particular software component of the plurality of software components, wherein the configuration information includes one or more of file path information identifying a file path for the particular software component, one or more parameters used when launching the particular software component, and log file information identifying a location of a log file for the particular software component.
Phatak [0065] “At 203, simulation metadata 224 may be stored in the storage and/or database 118. For example, the web server 214 may receive information about the simulation configuration as the user job inputs 216, and the database manager 116 may store the configuration information in the storage and/or database 118 as the simulation metadata 224. In some examples, the storage and/or database 118 may be any type of object storage, while in other examples, the storage and/or database 118 may include an actual database structure and components, such as a document-oriented database, or other type of database.”
Phatak [0049] “In addition, a database manager 116 may access storage 118, which may include a database configured to store and provide information for the simulation platform 108. Examples of information maintained in the storage 118 and managed by the database manager 116 may include simulation models, user information, license information, simulation logs, simulation results, and the like. ….”
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHUEN-MEEI GAN whose telephone number is (469)295-9127. The examiner can normally be reached Monday-Friday 9:00 am to 4:00 pm EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Rehana Perveen can be reached at 571-272-3676. 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.
/CHUEN-MEEI GAN/Primary Examiner, Art Unit 2189