Search

JP-7856746-B2 - State-based machine-based scripting applications and systems

JP7856746B2JP 7856746 B2JP7856746 B2JP 7856746B2JP-7856746-B2

Inventors

  • ツィマーマン、タマス
  • ジョーダン、ケネス

Assignees

  • ナットクラッカー セラピューティクス, インコーポレイテッド

Dates

Publication Date
20260511
Application Date
20220829
Priority Date
20210831

Claims (20)

  1. A system, wherein the system A non-temporary, computer-readable medium for storing multiple scripts, Equipped with a computer for carrying out the action, Each of the aforementioned multiple scripts, Having a corresponding scriptable device from multiple scriptable devices, and having a set of device operations, The aforementioned act, A system that, based on determining that an application command should be executed, performs an operation cycle that includes adding a globally unique identifier corresponding to that application command and the device operation corresponding to that application command to a log.
  2. The actions performed by the computer are performed for each of the multiple scriptable devices, Determining when each device operation from each script, for which the device is the corresponding scriptable device, is included in a plurality of mapped device operations encoded in data stored in the non-temporary computer-readable medium, The system according to claim 1, further comprising generating an error message for each script that includes a device operation which is determined to be the corresponding scriptable device and is not included in the mapped plurality of device operations.
  3. The non-temporary computer-readable medium, for each of the mapped device operations, The conversion between the device operation and the corresponding application command, The system according to claim 1, further storing data indicating a corresponding device module definition that defines a device module object for executing the corresponding application command for the device operation, and for each of the mapped plurality of device operations, the data indicating the conversion between the device operation and the corresponding application command is included in the device module definition corresponding to that device operation.
  4. The aforementioned operation cycle is The system receives execution commands from the aforementioned multiple scripts to run the scripts, In response to receiving the execution command, for each device operation from the plurality of device operations included in the script, Confirm that the device operation is included in the multiple mapped device operations, The system according to claim 3, comprising verifying that the device operation having any associated parameters is executable by the device module defined by the device module definition corresponding to the device operation.
  5. The non-temporary computer-readable medium stores, for each of the mapped device operations, data indicating one or more inputs provided to the corresponding device from the multiple scriptable devices when the device operation is performed, and the conversion between the device operation and the corresponding application command. When executing the aforementioned operation cycle, it is determined whether the application command should be executed. The enqueue of the application command to the queue corresponding to the device corresponding to the device operation of the application command, wherein the device is referred to here as the device corresponding to the application command, and the enqueue is performed. The system according to claim 1, further comprising checking the status of a thread corresponding to a device corresponding to the application command.
  6. The non-temporary computer-readable medium stores, for each of the mapped device operations, data indicating one or more inputs provided to the corresponding device from the multiple scriptable devices when the device operation is performed, and the conversion between the device operation and the corresponding application command. The system according to claim 1, wherein determining whether the application command should be executed when performing the operation cycle includes receiving, via a graphical user interface, an instruction to control the device corresponding to the device operation of the application command.
  7. A method performed by a computer according to claim 1 , wherein the method is For each of the multiple device object definitions, Allocating memory for a device object corresponding to that device object definition, wherein the device object corresponding to that device object definition has a command queue, The following instructions: In order to track the current state of the device object corresponding to that device object definition, A method comprising: assigning a corresponding thread to execute instructions to perform one or more actions specified in a device object definition for the current state of a device object, when the current state of the device object corresponding to that device object definition is the same as the state specified in that device object definition; and determining whether to update the current state of the device object corresponding to that device object definition, based on the existence and priority of commands in the command queue included in the device object corresponding to that device object definition.
  8. The method according to claim 7, wherein each device object definition specifies a set of actions to be performed while the device object defined by that device object definition is idle, and for each device object definition, the corresponding thread is for performing the set of actions specified to be performed while the device object defined by that device object definition is idle.
  9. The aforementioned multiple device object definitions include a temperature controller device object definition, The method of claim 8, wherein the set of operations specified by the temperature controller device object definition to be performed while the device object defined by the temperature controller device object definition is idle includes checking the temperature of the system.
  10. The method according to claim 7, wherein for each device object definition, all loops included in that device object definition have deterministic termination.
  11. Each device object definition is inherited from a module class definition, and each data object defined by a definition that inherits the module class definition is, Idle state and Stopped state, Shutdown state and The method according to claim 7, a state machine having states including a boot-up state, and comprising a command queue.
  12. The method includes obtaining a plurality of intermediate module definitions, each intermediate module definition including a reference to a set of device objects corresponding to a device object definition, The method includes obtaining a module manager definition, Each device object definition corresponds to a physical device, For each device object definition, the module manager definition includes instructions for controlling the physical device corresponding to that device object definition by an action, and the action is Instantiating a command object, This includes passing the command object to the intermediate module defined by the intermediate module definition, The intermediate module definition includes a reference to the device object corresponding to the device object definition, The method according to claim 7, wherein the command object is defined by a command object definition, and both the command object definition and the module class definition inherit a base object definition.
  13. Whenever an object defined by a definition that inherits the base object definition is instantiated, To generate a unique identifier for that object, The method according to claim 12, comprising an instruction for storing the aforementioned unique identifier in the object as private data.
  14. A system, wherein the system A non-temporary computer-readable medium for storing multiple scripts, Equipped with a computer for carrying out the action, Each of the scripts from the aforementioned multiple scripts Having a corresponding scriptable device from multiple scriptable devices, and having a set of device operations, The aforementioned act, The act of launching an application, wherein the act of launching the application, for each of the multiple mapped device object definitions, Allocating memory for a device object corresponding to that device object definition, wherein the device object corresponding to that device object definition has a command queue, and the allocation is performed. The following instructions: In order to track the current state of the device object corresponding to that device object definition, Initiating a device object includes, when the current state of the device object corresponding to that device object definition is the same as the state specified in that device object definition, assigning a corresponding thread to execute an instruction to perform one or more actions specified in the device object definition for the command specified for the current state of the device object, and to determine whether to update the current state of the device object corresponding to that device object definition based on the existence and priority of commands in the command queue included in the device object corresponding to that device object definition; A system that, based on determining that an application command should be executed, performs an operation cycle that includes logging a globally unique identifier corresponding to that application command and the device operation corresponding to that application command.
  15. The actions performed by the computer are performed for each of the multiple scriptable devices, Determining when each device operation from each script, for which the device is the corresponding scriptable device, is included in the mapped device operations, The system according to claim 14, further comprising generating an error message for each script that includes a device operation which is determined not to be included in the mapped plurality of device operations, provided that the device is the corresponding scriptable device.
  16. The non-temporary computer-readable medium, for each of the mapped device operations, The conversion between the device operation and the corresponding application command, The system according to claim 14 or 15, further storing data indicating a corresponding device module definition that defines a device module object for executing the corresponding application command for the device operation, and for each of the mapped device operations, the data indicating the conversion between the device operation and the corresponding application command is included in the device module definition corresponding to that device operation.
  17. The aforementioned operation cycle is The process involves receiving execution commands from the aforementioned multiple scripts to run the scripts, In response to receiving the execution command, for each device operation from the plurality of device operations included in the script, Confirm that the device operation is included in the multiple mapped device operations, The system according to claim 16, comprising verifying that a device operation having any associated parameters is executable by the device module defined by the device module definition corresponding to that device operation.
  18. The non-temporary computer-readable medium stores data indicating multiple intermediate module definitions for each of the multiple mapped device operations, each intermediate module definition including a reference to a set of device objects corresponding to one of the scriptable devices, Based on the determination that the aforementioned application command should be executed, the operation cycle is performed. This involves instantiating a command object corresponding to that application command, This includes passing the command object to an intermediate module, The system according to claim 14, wherein the command object, each device object, and each intermediate module instantiate a class that inherits a common base object definition.
  19. Whenever an object defined by a definition that inherits the base object definition is instantiated, To generate a unique identifier for that object, The system according to claim 18, comprising instructions for storing the aforementioned unique identifier in the object as private data.
  20. The system according to claim 14, wherein for each device object definition, all loops included in that device object definition have deterministic termination.

Description

The subject matter discussed in this section should not be assumed to be prior art simply as a result of its mention in this section. Similarly, the issues mentioned in this section, or issues related to the subject matter provided as background, should not be assumed to have been previously recognized in the prior art. The subject matter in this section merely represents different approaches, and these approaches themselves may also correspond to implementations of the claimed technology. Some currently available technologies for developing applications, such as those used in the manufacturing and formulation of polynucleotide therapeutics (e.g., mRNA therapeutics), may not be able to integrate external scripts, such as those created by process engineers. Additionally, applications created using such technologies may offer insufficient traceability if errors are encountered during execution or elsewhere. An improved framework can improve both the development and operation of applications. These goals can be advanced by structuring applications as modular, non-blocking state machines, and traceability and, where applicable, regulatory compliance can be improved by incorporating features such as external script integration and data and application activity logging. This specification describes systems and methods that may be used in creating and operating such applications, including those applicable to the control of systems for polynucleotide production. The implementation configuration relates to a system, comprising: multiple scriptable devices, each scriptable device exposing an interface and adapted to perform a predetermined action based on inputs provided through that interface; a non-temporary computer-readable medium storing data indicating, for each of the multiple mapped device operations, one or more inputs to be provided to the corresponding device from the multiple scriptable devices when performing that device operation, and a conversion between that device operation and the corresponding application command; multiple scripts, each script having a corresponding scriptable device from the multiple scriptable devices and comprising a set of device operations; and a computer for performing an action, the action comprising performing an operation cycle, the operation cycle including determining whether an application command should be executed, generating a globally unique identifier corresponding to that application command based on the determination that the application command should be executed, and adding the globally unique identifier corresponding to that application command and the corresponding device operation to a log; and repeating the operation cycle one or more times. In some implementations of the system described in the preceding paragraph of this overview, the actions performed by the computer include, for each of the multiple scriptable devices, determining when each device operation from each script for which that device corresponds to a scriptable device is included in the mapped multiple device operations, and generating an error message for each script containing a device operation for which that device is determined to be a scriptable device but not included in the mapped multiple device operations. In some implementations of the system, as described in either the second or third paragraph of this summary, the non-temporary computer-readable medium further stores data indicating a corresponding device module definition for each of the mapped device operations, defining a device module object for executing the corresponding application command for that device operation, and for each of the mapped device operations, data indicating the conversion between that device operation and the corresponding application command is included in the device module definition corresponding to that device operation. In some implementations of the system described in the preceding paragraph of this overview, the operation cycle may include receiving execution commands from multiple scripts to execute the scripts;, in response to receiving the execution commands, verifying that each device operation from the multiple device operations included in the scripts is included in the multiple device operations to which it is mapped; and verifying that a device operation with any associated parameters is executable by the device module defined by the device module definition corresponding to that device operation. In some implementations of the system, as described in any of paragraphs 2 through 5 of this summary, determining whether an application command should be executed when performing an operational cycle may include enqueuing the application command in a queue corresponding to a device corresponding to the device operation of the application command, where the device is referred herein as the device corresponding to the application command, and checking the state of the thread corresponding to t