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 .
This office action is in response to Applicant’s amendment filed on 03/25/2026. By the amendment, Claims 1-3, 5-12, and 14-18 have been amended, Claims 4 and 13 have been cancelled, and new Claims 19-21 have been added. Therefore, Claims 1-3, 5-12, and 14-21 are pending. Any examiner’s note, objection, or rejection not repeated is withdrawn due to Applicant’s amendment.
Priority
Applicant’s claim for priority from foreign application no. JP2020-204061, filed 12/09/2020, is acknowledged.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-3, 5-12, and 14-21 are rejected under 35 U.S.C. 103 as being unpatentable over Mariappan et al. (US 20200314015 A1) in view of Gainsborough et al. (US 20200241867 A1), and further in view of Goldschmidt et al. (“Software Containers for Industrial Control” NPL, published 2016), hereinafter referred to as Mariappan, Gainsborough, and Goldschmidt, respectively.
Regarding Claim 1, Mariappan discloses A control system including one or more [controllers] and one or more servers ([0002] In a typical cloud data center environment, there is a large collection of interconnected servers that provide computing and/or storage capacity to run various applications. ; [0012] The system includes a network controller for the virtualized computing infrastructure, where the network controller is configured for execution by the computing devices. Please note that the system including a network controller for the virtualized computing infrastructure, where the network controller is configured for execution by the computing devices, and the computing capacity is provided by interconnected servers, corresponds to Applicant’s control system including controllers and servers. Please note that though PLCs are later disclosed by Goldschmidt and are therefore incorporated in the system resulting from the combination of references, a generic Controller is being used in the Mariappan mapping, as it performs analogous functions.), the control system comprising:
a generator configured to generate a container including an image of runtime including a user program that defines computations for control of a control object and an execution environment of the user program ([0109] An image is a template with instructions for creating a container. A container is an executable instance of an image. Based on directives from controller agent 209, container engine 208 may obtain images and instantiate them as executable containers 229A-229B in pods 202A-202B. Please note that the container engine 208 obtaining images and instantiating them as executable containers 229A-229B corresponds to Applicant’s generator configured to generate a container inclusive of an image of runtime including a user program that defines computations for control of a control object and an execution environment of the user program. Since the containers are executable, this corresponds to the image that they instantiate including an execution environment of the user program as well as a user program that defines computations for control of a control object, i.e., what is executed within the container.);
the container engine of the one or more servers generates an instance of a virtual I/O driver configured to emulate an I/O driver that is in charge of a process to access a device connected to the one or more [controllers] when the container engine of the one or more servers generates the instance of the runtime ([0056] For example, server 12A includes NIC 13A. Any of NICs 13 may provide one or more virtual hardware components 21 for virtualized input/output (I/O). A virtual hardware component for I/O maybe a virtualization of a physical NIC 13 (the “physical function”). For example, in Single Root I/O Virtualization (SR-IOV), which is described in the Peripheral Component interface Special Interest Group SR-IOV specification, the PCIe Physical Function of the network interface card (or “network adapter”) is virtualized to present one or more virtual network interfaces as “virtual functions” for use by respective endpoints executing on the server 12. Please note that the server communicating with the NIC 13A which contains virtual hardware components 21 for virtualized I/O corresponds to Applicant’s container engine of the server generating an instance of a virtual I/O driver configured to emulate an I/O driver that is in charge of a process to access a device connected to the controllers when the container engine of the server generates the instance of the runtime. This is because, as is known in the art, in order to utilize the virtualized I/O, virtualized or emulated drivers would be required. Additionally, since the virtualized drivers would be in order to access the NIC 13A for communication and to be used by respective endpoints executing on the server 12, this corresponds to being in charge of a process to access the device connected to the control device when the container engine of the server generates the instance of the runtime.) ,
and the instance of the virtual I/O driver, when receiving commands for accessing the device, transfers the commands for accessing the device to the one or more [controllers] corresponding to the device to be accessed ([0056] For example, server 12A includes NIC 13A. Any of NICs 13 may provide one or more virtual hardware components 21 for virtualized input/output (I/O). A virtual hardware component for I/O maybe a virtualization of a physical NIC 13 (the “physical function”). For example, in Single Root I/O Virtualization (SR-IOV), which is described in the Peripheral Component interface Special Interest Group SR-IOV specification, the PCIe Physical Function of the network interface card (or “network adapter”) is virtualized to present one or more virtual network interfaces as “virtual functions” for use by respective endpoints executing on the server 12. Please note that the PCIe physical function of the NIC being virtualized to present virtual network interfaces as virtual functions for use by respective endpoints corresponds to Applicant’s instance of the virtual I/O driver transferring the commands for accessing the device to the one or more [controllers] corresponding to the device to be accessed when receiving commands for accessing the device. This is because since the virtualized drivers would be used in order to access the NIC 13A for communication and able to be used at respective endpoints executing on the server 12, this corresponds to transferring the commands for accessing the device to the controllers corresponding to the device to be accessed, i.e., utilizing the presented endpoints to access the device of the system when commands are received to do so at the corresponding controller of the device.).
Mariappan does not explicitly disclose and an orchestrator configured to release the container to one or both of the one or more [controllers] and the one or more servers, wherein: the one or more [controllers] and the one or more servers each having a container engine for container deployment and each deploying the container released by the orchestrator to generate an instance of the runtime and perform the computations for control
However, Gainsborough discloses and an orchestrator configured to release the container to one or both of the one or more [controllers] and the one or more servers, wherein: the one or more [controllers] and the one or more servers each having a container engine for container deployment and each deploying the container released by the orchestrator to generate an instance of the runtime and perform the computations for control ([0035] The new container image is to be deployed based on the container image layering structure 109 and is to be used for generation of one or more containers 150A-M in a cloud processing system.; [0049] A release event is an event in which the software elements are uploaded to cause an update or a generation of the container image. In some implementations, a release event can be a first-time deployment of the container image. Please note that the release event in which software elements are uploaded to cause a deployment of the container image, where the container is generated in a cloud processing system, corresponds to Applicant’s orchestrator configured to release the container to the controller and server, where the controller and server each have a container engine for container deployment and each deploying the container released by the orchestrator to generate an instance of the runtime and perform the computations for control. This is because the system by which the release event occurs corresponds to the orchestrator, and once the software elements are uploaded, i.e., sent to the controller and server, they deploy the released container with the container image, i.e., instance of the runtime and perform computations for its control, via respective container engines, i.e., their deployment systems.).
Mariappan and Gainsborough are both considered to be analogous to the claimed invention because they are in the same field of computer container creation and management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Mariappan to incorporate the teachings of Gainsborough to modify the control system with a generator generating containers, generating an instance of a virtual I/O driver configured to emulate an I/O driver that is in charge of a process to access a device connected to the controllers, with the instance of the virtual I/O driver transferring the commands for accessing the device to the one or more controllers, to utilize an orchestrator, where each deploy the container to generate an instance of the runtime and perform the computations for control, allowing for improved modularity and ease of system modification and control, as described in Gainsborough.
Mariappan-Gainsborough does not explicitly disclose programmable logic controllers (PLCs);
a PLC runtime;
PLC runtime container;
access a field device connected to the one or more PLCs ;
However, Goldschmidt discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
PLC runtime container (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime container, as the system utilizes containers in the OS.)
access a field device connected to the one or more PLCs (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices.; Pages 259-260, Section 3.1: The I/O system is the most complex part of an automation controller, both in terms of hardware and software. The sensors and actuators a controller has to interact within order to perform its control tasks are connected using different hardware interfaces and communication protocols.; Please note that as Applicant states in [0023] of the specification that “field devices 10 each include a device(s) used to transmit and receive information to and from a control object (for example, […] sensor(s) and/or actuator(s) included in the manufacturing apparatus(es)),” the field device of the automated solution alongside the PLC that may be a sensor or actuator that the PLC controller interacts with corresponds to Applicant’s field device connected to the PLCs.);
Mariappan-Gainsborough and Goldschmidt are both considered to be analogous to the claimed invention because they are in the same field of computer container creation and management for controllers. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Mariappan-Gainsborough to incorporate the teachings of Goldschmidt to modify the previously described control system to utilize PLCs (a variant of a controller/control device), a PLC runtime, a PLC runtime container, and a field device connected to the PLCs, allowing for improved ease of system modification and control as well as improved performance in PLC systems, as described in Goldschmidt.
Regarding Claim 2, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
Mariappan further discloses the container engine of the one or more servers generates, in addition to the instance of the PLC runtime, an instance of an emulator configured to emulate input and output data transmitted and received to and from the control object ([0056] server 12A includes NIC 13A. Any of NICs 13 may provide one or more virtual hardware components 21 for virtualized input/output (I/O). Please note that virtual hardware components 21 for virtualized input/output (I/O) of the NIC 13A of the server 12A corresponds to Applicant’s container engine of the server generating an instance of an emulator configured to emulate input and output data transmitted and received to and from the control object.).
Regarding Claim 3, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
field device connected to the one or more PLCs (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices.; Pages 259-260, Section 3.1: The I/O system is the most complex part of an automation controller, both in terms of hardware and software. The sensors and actuators a controller has to interact within order to perform its control tasks are connected using different hardware interfaces and communication protocols.; Please note that as Applicant states in [0023] of the specification that “field devices 10 each include a device(s) used to transmit and receive information to and from a control object (for example, […] sensor(s) and/or actuator(s) included in the manufacturing apparatus(es)),” the field device of the automated solution alongside the PLC that may be a sensor or actuator that the PLC controller interacts with corresponds to Applicant’s field device connected to the PLCs.);
Mariappan further discloses when the container engine of the one or more servers generates the instance of the PLC runtime, the container engine of the one or more PLCs generates an instance of a network server that mediates, to the one or more servers, input and output data exchanged through a field device connected to the one or more PLCs ([0058] The term “virtual router” as used herein may encompass […] device and/or software that is located on a host device and performs switching, bridging, or routing packets among virtual network endpoints of one or more virtual networks, where the virtual network endpoints are hosted by one or more of servers 12 ; [0060] To switch data between virtual hardware components associated with NIC 13A, internal device switch may perform layer 2 forwarding to switch or bridge layer 2 packets between virtual hardware components and the physical hardware component for NIC 13A. Each virtual hardware component may be located on a virtual local area network (VLAN) for the virtual network for the virtual network endpoint that uses the virtual hardware component for I/O. Please note that the respective virtual network endpoint hosted by server 12 corresponds to Applicant’s instance of a network server generated when the container engine of the server generates the instance of the runtime that mediates the data to the server, and the virtual hardware components associated with NIC 13A correspond to the device connected to the control device that exchanges input and output data. The mediation of the input/output data is thus controlled by the VLAN for the virtual network for the virtual network endpoint that uses the virtual hardware component for I/O.).
Regarding Claim 5, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
Mariappan further discloses wherein the PLC runtime container includes at least one of an image deployed only by the container engine of the one or more PLCs and an image deployed only by the container engine of the one or more servers ([0107] computing device 200 (e.g., network controller 24; [0111] Based on the container specification data, orchestration agent 209 directs container engine 208 to obtain and instantiate the container images for containers 229, for execution of containers 229 by computing device 200. Please note that instantiated container images for container 229 for execution of containers 229 by computing device 200, which is network controller 24, corresponds to Applicant’s container including an image deployed only by the container engine of the control device. Additionally, please note that as Applicant states “at least one of” the images deployed, this is interpreted as fulfilling the requirement.).
Regarding Claim 6, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
Mariappan further discloses a repository for address management in order to access the container engine of the one or more servers when the container engine of the one or more servers generates the instance of the PLC runtime ([0048] any of virtual routers 21 may contain a separate forwarding table (a routing-instance) per virtual network. That forwarding table contains the IP prefixes (in the case of a layer 3 overlays) or the MAC addresses (in the case of layer 2 overlays) of the virtual machines or other virtual execution elements (e.g., pods of containers). Please note that the forwarding table for the virtual network containing MAC addresses of pods of containers corresponds to Applicant’s repository for address management in order to access the container engine of the server when the container engine of the server generates the instance of the runtime, as the addresses of pods of containers are maintained in the table per virtual network, i.e., once the container engine of the server generates the instance of the runtime in the container.).
Regarding Claim 7, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
Mariappan further discloses a node manager configured to virtually generate a node that includes a container engine configured to deploy the PLC runtime container when the PLC runtime container is released to the one or more servers and no container engine is present ([0064] Virtual execution elements may be deployed to a virtualization environment using a cluster-based framework in which a cluster master node of a cluster manages the deployment and operation of containers to one or more cluster minion nodes of the cluster. Please note that the cluster master node in a virtualization environment that manages the deployment of containers corresponds to Applicant’s node manager configured to virtually generate a node that includes a container engine configured to deploy the container, i.e., the means by which the master node deploys the containers, when the container is released to the server and no container engine is present, i.e., when the virtual execution elements are deployed to the cluster-based framework.).
Regarding Claim 8, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
PLC runtime container (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime container, as the system utilizes containers in the OS.)
Gainsborough further discloses a container hub configured to register the PLC runtime container generated by the generator in a manner that the PLC runtime container is associated with identification information of the one or more PLCs to which the PLC runtime container is releasable ([0035] The new container image is to be deployed based on the container image layering structure 109 and is to be used for generation of one or more containers 150A-M in a cloud processing system. In some implementations, the new container image 111 is stored in a container registry 140. Please note that the new container image 111 being stored in a container registry 140, where it is to be deployed and is to be used for generation of a container in a cloud processing system, corresponds to Applicant’s container hub configured to register the container generated by the generator in a manner that the container is associated with identification information of the control device to which the container is releasable. This is because the container registry 140 corresponds to Applicant’s container hub configured to register the container, and since it is to be deployed, this corresponds to associating the container with identification of the control device to which it is releasable in order to be deployed as part of the registration.).
Regarding Claim 9, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses PLC runtime container (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime container, as the system utilizes containers in the OS.)
Gainsborough further discloses wherein the orchestrator selects the PLC runtime container to be released and determines a destination of the PLC runtime container released in accordance with a user operation ([0035] The new container image is to be deployed based on the container image layering structure 109 and is to be used for generation of one or more containers 150A-M in a cloud processing system. In some implementations, the new container image 111 is stored in a container registry 140.; [0049] A release event is an event in which the software elements are uploaded to cause an update or a generation of the container image. In some implementations, a release event can be a first-time deployment of the container image. [0071] the system 340 includes a set of one or more servers that are running on server electronic devices and that are configured to handle requests for any authorized user associated with any tenant. Please note that the new container that is to be deployed after a release event as part of the operation of the system with a server responsive to user requests corresponds to Applicant’s orchestrator selecting a container to be released and determining a destination of the container released in accordance with a user operation. This is because deploying a container as part of the release event necessarily requires determining a destination for the container.).
Regarding Claim 10, Mariappan discloses A control method in a control system including one or more [controllers] and one or more servers ([0002] In a typical cloud data center environment, there is a large collection of interconnected servers that provide computing and/or storage capacity to run various applications. ; [0012] The system includes a network controller for the virtualized computing infrastructure, where the network controller is configured for execution by the computing devices. Please note that the system including a network controller for the virtualized computing infrastructure, where the network controller is configured for execution by the computing devices, and the computing capacity is provided by interconnected servers, corresponds to Applicant’s control method including controllers and servers. Please note that though PLCs are later disclosed by Goldschmidt and are therefore incorporated in the system resulting from the combination of references, a generic Controller is being used in the Mariappan mapping, as it performs analogous functions.), the method comprising:
generating a container including an image of runtime including a user program that defines computations for control of a control object and an execution environment of the user program ([0109] An image is a template with instructions for creating a container. A container is an executable instance of an image. Based on directives from controller agent 209, container engine 208 may obtain images and instantiate them as executable containers 229A-229B in pods 202A-202B. Please note that the container engine 208 obtaining images and instantiating them as executable containers 229A-229B corresponds to Applicant’s generating a container inclusive of an image of runtime including a user program that defines computations for control of a control object and an execution environment of the user program. Since the containers are executable, this corresponds to the image that they instantiate including an execution environment of the user program as well as a user program that defines computations for control of a control object, i.e., what is executed within the container.);
and generating, by the container engine of the one or more servers, an instance of a virtual I/O driver configured to emulate an I/O driver that is in charge of a process to access a device connected to the one or more [controllers] when the container engine of the one or more servers generates the instance of the runtime ([0056] For example, server 12A includes NIC 13A. Any of NICs 13 may provide one or more virtual hardware components 21 for virtualized input/output (I/O). A virtual hardware component for I/O maybe a virtualization of a physical NIC 13 (the “physical function”). For example, in Single Root I/O Virtualization (SR-IOV), which is described in the Peripheral Component interface Special Interest Group SR-IOV specification, the PCIe Physical Function of the network interface card (or “network adapter”) is virtualized to present one or more virtual network interfaces as “virtual functions” for use by respective endpoints executing on the server 12. Please note that the server communicating with the NIC 13A which contains virtual hardware components 21 for virtualized I/O corresponds to Applicant’s container engine of the server generating an instance of a virtual I/O driver configured to emulate an I/O driver that is in charge of a process to access a device connected to the controllers when the container engine of the server generates the instance of the runtime. This is because, as is known in the art, in order to utilize the virtualized I/O, virtualized or emulated drivers would be required. Additionally, since the virtualized drivers would be in order to access the NIC 13A for communication and to be used by respective endpoints executing on the server 12, this corresponds to being in charge of a process to access the device connected to the control device when the container engine of the server generates the instance of the runtime.) ,
wherein the instance of the virtual I/O driver, when receiving commands for accessing the device, transfers the commands for accessing the device to the one or more [controllers] corresponding to the device to be accessed ([0056] For example, server 12A includes NIC 13A. Any of NICs 13 may provide one or more virtual hardware components 21 for virtualized input/output (I/O). A virtual hardware component for I/O maybe a virtualization of a physical NIC 13 (the “physical function”). For example, in Single Root I/O Virtualization (SR-IOV), which is described in the Peripheral Component interface Special Interest Group SR-IOV specification, the PCIe Physical Function of the network interface card (or “network adapter”) is virtualized to present one or more virtual network interfaces as “virtual functions” for use by respective endpoints executing on the server 12. Please note that the PCIe physical function of the NIC being virtualized to present virtual network interfaces as virtual functions for use by respective endpoints corresponds to Applicant’s instance of the virtual I/O driver transferring the commands for accessing the device to the one or more [controllers] corresponding to the device to be accessed when receiving commands for accessing the device. This is because since the virtualized drivers would be used in order to access the NIC 13A for communication and able to be used at respective endpoints executing on the server 12, this corresponds to transferring the commands for accessing the device to the controllers corresponding to the device to be accessed, i.e., utilizing the presented endpoints to access the device of the system when commands are received to do so at the corresponding controller of the device.).
Mariappan does not explicitly disclose releasing the container to one or more [controllers] and the one or more servers; deploying, at each of the one or more [controllers] and the one or more servers each having a container engine for container deployment, the container released by the orchestrator to generate an instance of the runtime and perform the computations for control
However, Gainsborough discloses releasing the container to one or more [controllers] and the one or more servers ([0049] A release event is an event in which the software elements are uploaded to cause an update or a generation of the container image. In some implementations, a release event can be a first-time deployment of the container image. Please note that the release event in which software elements are uploaded, i.e., sent to the controller and server, corresponds to Applicant’s releasing the container to one or both of the controller and the server.);
deploying, at each of the one or more [controllers] and the one or more servers each having a container engine for container deployment, the container released by the orchestrator to generate an instance of the runtime and perform the computations for control ([0035] The new container image is to be deployed based on the container image layering structure 109 and is to be used for generation of one or more containers 150A-M in a cloud processing system. Please note that causing a deployment of the container image, where the container is generated in a cloud processing system, corresponds to Applicant’s deploying the container that has been released to generate an instance of the runtime and perform the computations for control at each of the controller and server each having a container engine for deployment. This is because once the software elements are uploaded, they deploy the released container with the container image, i.e., generate the instance of the runtime and perform computations for its control, via respective container engines, i.e., their container engines for container deployment.)
Mariappan and Gainsborough are both considered to be analogous to the claimed invention because they are in the same field of computer container creation and management. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Mariappan to incorporate the teachings of Gainsborough to modify the control system with a generator generating containers, generating an instance of a virtual I/O driver configured to emulate an I/O driver that is in charge of a process to access a device connected to the controllers, with the instance of the virtual I/O driver transferring the commands for accessing the device to the one or more controllers, to utilize an orchestrator, where each deploy the container to generate an instance of the runtime and perform the computations for control, allowing for improved modularity and ease of system modification and control, as described in Gainsborough.
Mariappan-Gainsborough does not explicitly disclose programmable logic controllers (PLCs);
a PLC runtime;
PLC runtime container;
access a field device connected to the one or more PLCs ;
However, Goldschmidt discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
PLC runtime container (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime container, as the system utilizes containers in the OS.)
access a field device connected to the one or more PLCs (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices.; Pages 259-260, Section 3.1: The I/O system is the most complex part of an automation controller, both in terms of hardware and software. The sensors and actuators a controller has to interact within order to perform its control tasks are connected using different hardware interfaces and communication protocols.; Please note that as Applicant states in [0023] of the specification that “field devices 10 each include a device(s) used to transmit and receive information to and from a control object (for example, […] sensor(s) and/or actuator(s) included in the manufacturing apparatus(es)),” the field device of the automated solution alongside the PLC that may be a sensor or actuator that the PLC controller interacts with corresponds to Applicant’s field device connected to the PLCs.);
Mariappan-Gainsborough and Goldschmidt are both considered to be analogous to the claimed invention because they are in the same field of computer container creation and management for controllers. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Mariappan-Gainsborough to incorporate the teachings of Goldschmidt to modify the previously described control system to utilize PLCs (a variant of a controller/control device), a PLC runtime, a PLC runtime container, and a field device connected to the PLCs, allowing for improved ease of system modification and control as well as improved performance in PLC systems, as described in Goldschmidt.
Regarding Claim 11, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Mariappan further discloses generating, at the container engine of the one or more servers, an instance of an emulator configured to emulate input and output data transmitted and received to and from the control object ([0056] server 12A includes NIC 13A. Any of NICs 13 may provide one or more virtual hardware components 21 for virtualized input/output (I/O). Please note that virtual hardware components 21 for virtualized input/output (I/O) of the NIC 13A of the server 12A corresponds to Applicant’s container engine of the server generating an instance of an emulator configured to emulate input and output data transmitted and received to and from the control object.).
Regarding Claim 12, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
field device connected to the one or more PLCs (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices.; Pages 259-260, Section 3.1: The I/O system is the most complex part of an automation controller, both in terms of hardware and software. The sensors and actuators a controller has to interact within order to perform its control tasks are connected using different hardware interfaces and communication protocols.; Please note that as Applicant states in [0023] of the specification that “field devices 10 each include a device(s) used to transmit and receive information to and from a control object (for example, […] sensor(s) and/or actuator(s) included in the manufacturing apparatus(es)),” the field device of the automated solution alongside the PLC that may be a sensor or actuator that the PLC controller interacts with corresponds to Applicant’s field device connected to the PLCs.);
Mariappan further discloses generating, at the container engine of the one or more PLCs, an instance of a network server that mediates, to the one or more servers, input and output data exchanged through a field device connected to the one or more PLCs, when the instance of the PLC runtime is generated by the container engine of the one or more servers ([0058] The term “virtual router” as used herein may encompass […] device and/or software that is located on a host device and performs switching, bridging, or routing packets among virtual network endpoints of one or more virtual networks, where the virtual network endpoints are hosted by one or more of servers 12 ; [0060] To switch data between virtual hardware components associated with NIC 13A, internal device switch may perform layer 2 forwarding to switch or bridge layer 2 packets between virtual hardware components and the physical hardware component for NIC 13A. Each virtual hardware component may be located on a virtual local area network (VLAN) for the virtual network for the virtual network endpoint that uses the virtual hardware component for I/O. Please note that the respective virtual network endpoint hosted by server 12 corresponds to Applicant’s instance of a network server generated when the container engine of the server generates the instance of the runtime that mediates the data to the server, and the virtual hardware components associated with NIC 13A correspond to the device connected to the control device that exchanges input and output data. The mediation of the input/output data is thus controlled by the VLAN for the virtual network for the virtual network endpoint that uses the virtual hardware component for I/O.).
Regarding Claim 14, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
Mariappan further discloses wherein the PLC runtime container includes at least one of an image deployed only by the container engine of the one or more PLCs and an image deployed only by the container engine of the one or more servers ([0107] computing device 200 (e.g., network controller 24; [0111] Based on the container specification data, orchestration agent 209 directs container engine 208 to obtain and instantiate the container images for containers 229, for execution of containers 229 by computing device 200. Please note that instantiated container images for container 229 for execution of containers 229 by computing device 200, which is network controller 24, corresponds to Applicant’s container including an image deployed only by the container engine of the control device. Additionally, please note that as Applicant states “at least one of” the images deployed, this is interpreted as fulfilling the requirement.).
Regarding Claim 15, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Goldschmidt further discloses a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
Mariappan further discloses providing a repository for address management in order to access the container engine of the one or more servers when the container engine of the one or more servers generates the instance of the PLC runtime ([0048] any of virtual routers 21 may contain a separate forwarding table (a routing-instance) per virtual network. That forwarding table contains the IP prefixes (in the case of a layer 3 overlays) or the MAC addresses (in the case of layer 2 overlays) of the virtual machines or other virtual execution elements (e.g., pods of containers). Please note that the forwarding table for the virtual network containing MAC addresses of pods of containers corresponds to Applicant’s repository for address management in order to access the container engine of the server when the container engine of the server generates the instance of the runtime, as the addresses of pods of containers are maintained in the table per virtual network, i.e., once the container engine of the server generates the instance of the runtime in the container.).
Regarding Claim 16, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Goldschmidt further discloses a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
Mariappan further discloses providing a node manager configured to virtually generate a node that includes a container engine configured to deploy the PLC runtime container when the PLC runtime container is released to the one or more servers and no container engine is present ([0064] Virtual execution elements may be deployed to a virtualization environment using a cluster-based framework in which a cluster master node of a cluster manages the deployment and operation of containers to one or more cluster minion nodes of the cluster. Please note that the cluster master node in a virtualization environment that manages the deployment of containers corresponds to Applicant’s node manager configured to virtually generate a node that includes a container engine configured to deploy the container, i.e., the means by which the master node deploys the containers, when the container is released to the server and no container engine is present, i.e., when the virtual execution elements are deployed to the cluster-based framework.).
Regarding Claim 17, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Goldschmidt further discloses programmable logic controllers (PLCs) (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices. Please note that the PLCs of the automation solutions correspond to Applicant’s PLCs.);
a PLC runtime (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime.);
PLC runtime container (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime container, as the system utilizes containers in the OS.)
Gainsborough further discloses providing a container hub configured to register the generated PLC runtime container in a manner that the PLC runtime container is associated with identification information of the one or more PLCs to which the PLC runtime container is releasable ([0035] The new container image is to be deployed based on the container image layering structure 109 and is to be used for generation of one or more containers 150A-M in a cloud processing system. In some implementations, the new container image 111 is stored in a container registry 140. Please note that the new container image 111 being stored in a container registry 140, where it is to be deployed and is to be used for generation of a container in a cloud processing system, corresponds to Applicant’s container hub configured to register the container generated by the generator in a manner that the container is associated with identification information of the control device to which the container is releasable. This is because the container registry 140 corresponds to Applicant’s container hub configured to register the container, and since it is to be deployed, this corresponds to associating the container with identification of the control device to which it is releasable in order to be deployed as part of the registration.).
Regarding Claim 18, Mariappan-Gainsborough-Goldschmidt as described in Claim 10, Goldschmidt further discloses PLC runtime container (Page 261, Section 4.2: Real-Time Container OS which is an operating system that is capable of running on diverse hardware ranging from small embedded, low-power field devices up to high-performance PLCs. Please note the Real-Time Container OS capable of running on PLCs corresponds to Applicant’s PLC runtime container, as the system utilizes containers in the OS.)
Gainsborough further discloses selecting, at an orchestrator, the PLC runtime container to be released; and determining, at the orchestrator, a destination of the PLC runtime container released in accordance with a user operation ([0035] The new container image is to be deployed based on the container image layering structure 109 and is to be used for generation of one or more containers 150A-M in a cloud processing system. In some implementations, the new container image 111 is stored in a container registry 140.; [0049] A release event is an event in which the software elements are uploaded to cause an update or a generation of the container image. In some implementations, a release event can be a first-time deployment of the container image. [0071] the system 340 includes a set of one or more servers that are running on server electronic devices and that are configured to handle requests for any authorized user associated with any tenant. Please note that the new container that is to be deployed after a release event as part of the operation of the system with a server responsive to user requests corresponds to Applicant’s orchestrator selecting a container to be released and determining a destination of the container released in accordance with a user operation. This is because deploying a container as part of the release event necessarily requires determining a destination for the container.).
Regarding Claim 19, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses wherein the orchestrator is configured to switch between releasing the PLC runtime container to the one or more PLCs and releasing the PLC runtime container to the one or more servers in accordance with a condition related to a shortage of resources in the one or more PLCs (Page 260, Section 3.2: the software part of the system needs to be scalable and adaptable but there should also be different types of hardware the system can be deployed on. This might range from small units that can be included in field devices (such as temperature or pressure transmitters) only being able to execute very simple functions up to full fledged, high end PLCs or even server-based control systems that can run complex control as well as analytics functions.; Page 261, Section 4.2: applications can then be downloaded and deployed to the actual controller which best suits the application (e.g., access to necessary IOs, physical location, free resources, etc.). This task is performed by the central Deployment Coordinator in conjunction the Container Deployer located on the controller itself. Please note that the Deployment Coordinator, in conjunction with the Container Deployer, deploying applications to the controller best suiting the application based on factors such as free resources, where the software can be deployed to PLCs or server-based control systems corresponds to Applicant’s orchestrator being configured to switch between releasing the PLC runtime container to the one or more PLCs and releasing the PLC runtime container to the one or more servers in accordance with a condition related to a shortage of resources in the one or more PLCs.).
Regarding Claim 20, Mariappan-Gainsborough-Goldschmidt as described in Claim 1, Goldschmidt further discloses wherein the commands for accessing the field device issued by the PLC runtime container are identical when the PLC runtime container is deployed on the one or more PLCs and when the PLC runtime container is deployed on the one or more servers (Page 260, Section 3.2: the software part of the system needs to be scalable and adaptable but there should also be different types of hardware the system can be deployed on. This might range from small units that can be included in field devices (such as temperature or pressure transmitters) only being able to execute very simple functions up to full fledged, high end PLCs or even server-based control systems that can run complex control as well as analytics functions. Please note that the software of the system being able to be deployed on PLCs or server-based control systems corresponds to Applicant’s commands for accessing the field device issued by the PLC runtime container being identical when the PLC runtime container is deployed on the one or more PLCs and when the PLC runtime container is deployed on the one or more servers, as the same software, such as the aforementioned field device accessing commands, may be deployed on either a PLC or a server.).
Regarding Claim 21, Mariappan-Gainsborough-Goldschmidt as described in Claim 20, Goldschmidt further discloses when the container engine of the one or more servers generates the instance of the PLC runtime, the container engine of the one or more PLCs generates an instance of a network server that mediates, to the one or more servers, input and output data exchanged through a field device connected to the one or more PLCs and the container engine of the one or more servers generates an instance of a network client (Page 258, Section 1: the main building blocks of these automation solutions, such as the Programmable Logic Controllers (PLCs), field devices.; Pages 259-260, Section 3.1: The I/O system is the most complex part of an automation controller, both in terms of hardware and software. The sensors and actuators a controller has to interact within order to perform its control tasks are connected using different hardware interfaces and communication protocols.; Page 260, Section 3.2: the software part of the system needs to be scalable and adaptable but there should also be different types of hardware the system can be deployed on. This might range from small units that can be included in field devices (such as temperature or pressure transmitters) only being able to execute very simple functions up to full fledged, high end PLCs or even server-based control systems that can run complex control as well as analytics functions.; Page 261, Section 4.1: Software container technology, also called operating system-level virtualization, is a server-virtualization method. Please note that the software container technology, also called operating system-level virtualization, being a server-virtualization method corresponds to Applicant’s container engine of the one or more PLCs generating an instance of a network server when the container engine of the one or more servers generates the instance of the PLC runtime. Furthermore, the server-based control system that runs control functions, where there is also an I/O system in the automation controller software that interacts with sensors and actuators via hardware interfaces and communication protocols corresponds to mediating input and output data to the one or more servers exchanged through a field device connected to the one or more PLCs, i.e., the sensor or actuator controlled by the PLC, and the container engine of the one or more servers generating an instance of a network client.)
and the instance of the network server renders an I/O processing result synchronous with the instance of the network client (Pages 259-260, Section 3.1: The I/O system is the most complex part of an automation controller, both in terms of hardware and software. The sensors and actuators a controller has to interact within order to perform its control tasks are connected using different hardware interfaces and communication protocols. Thus, depending on the installation in which a controller is used, the I/O system has to map the different data formats provided by standard or proprietary I/O devices to a common data representation used by other system components through the real-time database. Furthermore, certain aspects of the way data from the I/O devices is handled by the I/O systems can be influenced by a human through the operator interaction component. Please note that I/O system mapping the formats provided by I/O devices to a common data representation used by other system components through the real-time database corresponds to Applicant’s instance of the network server rendering an I/O processing result synchronous with the instance of the network client, as it creates a common data representation, corresponding to rendering an I/O processing result, that is provided to other system components, corresponding to the instance of the network client, via a real-time database, which is synchronous.).
Response to Arguments
Applicant's arguments filed 03/25/2026 have been fully considered but they are not persuasive.
Applicant’s arguments are summarized as follows:
Neither Mariappan or Gainsborough nor the combination disclose the combined features of the amended Claim 1, where it is possible to provide substantially the same execution environment as for performing the computations for control on the PLC, the PLC runtime instance for performing computations for control can be used on a server as well. Additionally, the computations for control can be performed on servers while utilizing devices connected to the PLC, enabling downsizing and simplification of the control system. Therefore, amended Claim 1 is patentable over the cited art, and the rejections under 35 U.S.C. 103 should be withdrawn.
Since independent Claim 10 recites similar features to Claim 1, it is patentable for similar reasons, and the rejections under 35 U.S.C. 103 should be withdrawn.
The rest of the rejected claims are patentable due to their dependencies on allowable Claims, and their rejections under 35 U.S.C. 103 should be withdrawn.
Regarding A, the examiner respectfully disagrees. The Applicant’s arguments are moot, as the rejections of the Claim now relies on a new grounds of rejection, Mariappan-Gainsborough-Goldschmidt, which discloses the limitations stated by the Applicant via the combination of references, as stated above. Therefore, the recited features can be found in the cited combination of references, and independent Claim 1 remains rejected under 35 U.S.C. 103 for the reasons stated above, and the combinations cited would have been obvious to a person of ordinary skill in the art prior to the effective filing date of the application. The rejections under 35 U.S.C. 103 are maintained.
Regarding B, the examiner respectfully disagrees. Contrary to Applicant’ arguments, because the independent Claims 10 contains similar limitations to rejected Claim 1 and does not add limitations that overcome the rejection, it likewise remain rejected. The rejections under 35 U.S.C. 103 are maintained.
Regarding C, the examiner respectfully disagrees. Contrary to Applicant’ arguments, because the dependent Claims depend on unpatentable independent Claims 1 and 10 and do not add limitations that overcome the rejection, they likewise remain rejected. The rejections under 35 U.S.C. 103 are maintained.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Ben-Shaul et al. (US 20170366606 A1) discloses moving container instances, virtualized components and drivers, and deploying containers (see [0036, 0123, 0146, 0150, 0293, 0295, 0298, 0317).
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 FARAZ T AKBARI whose telephone number is (571)272-4166. The examiner can normally be reached Monday-Thursday 9:30am-7:30pm ET.
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, April Blair can be reached at (571)270-1014. 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.
/FARAZ T AKBARI/ Examiner, Art Unit 2196
/APRIL Y BLAIR/ Supervisory Patent Examiner, Art Unit 2196