Secure access to process control or automation system

Through computing structural architecture and containerized components, the complexity and safety issues of existing industrial process control systems under the Purdue model are solved, and more efficient and safe process control and automation are achieved, simplifying factory debugging and expansion.

CN120303902APending Publication Date: 2025-07-11FISHER ROSEMOUNT SYST INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380066578.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-10-20
Filing Date
2023-07-18
Publication Date
2025-07-11

AI Technical Summary

Technical Problem

Existing industrial process control systems face complexity, security and maintenance difficulties when following the Purdue model, especially when transferring data to the cloud or IT system, which makes the system difficult to maintain and security vulnerabilities.

Method used

Using the computing structure architecture, the sharing and non-site ways of computing resources are realized through containerized components and virtualization technology, and the redundancy and backup of containerized components are used on different hardware, combining virtual private networks and point-to-point connections to ensure secure communication and flexible control functions.

Benefits of technology

It realizes more efficient process control and automation, reduces dependence on traditional hardware, improves system security and flexibility, simplifies factory debugging and expansion processes, and reduces maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120303902A_ABST
    Figure CN120303902A_ABST
Patent Text Reader

Abstract

In one embodiment, a process plant and industrial control system architecture includes a general purpose computing fabric that is agnostic or irrelevant to a physical location that implements the computing fabric; comprising one or more physical control or field devices located at one or more specific sites for manufacturing a product or process; and also includes a transport network that securely provides communication between the computing fabric and the pool of physical devices. The computing fabric includes an application layer that includes a configuration container or containerized software module that performs various control, monitoring and configuration activities regarding one or more devices, control policies and control loops, sites, plants or facilities that perform the control; the present invention relates to a data storage system, and includes a physical layer that includes computer processing and data storage equipment that can be located at any desired location, the method may be applied to the cloud, including at or near a site, plant, or facility that performs the control, at a dedicated location remote from the location that performs the control, in reassignable computer equipment provided in the cloud, or any combination thereof. The control architecture enables a large number of computer processing and IT infrastructures for supporting process plants, industrial control facilities, or other automation facilities to be implemented in a shared, off-site, and / or virtualized manner, this mitigates a number of communication and security issues present in current processes and industrial control systems that attempt to achieve control with shared or virtualized computing resources established according to a well-known Precious Model. The industrial control system architecture is protected via techniques that are safer and customizable compared to those used in a Pru Model-based control system. For example, communications between any (and, in some cases, all) endpoints of the system may be protected via one or more virtual private networks that the authenticated endpoint must be authorized to access. The endpoints may include, for example, containerized components, physical components, devices, sites or locations, computing structures, etc., and the VPNs may include mutually exclusive and / or nested VPNs. External applications and services, whether being automatic or executing under human rights, may access information and services provided by the system only via APIs, and different sets of APIs may be exposed to different users that have been authenticated and authorized to access the respective sets of APIs. A configuration system operates within the computing structure to enable a user to easily make a configuration change to the computing structure because the user does not generally need to specify computer hardware within the computing structure for making the configuration change, this makes it possible for the user to deploy new configuration elements with simple programming steps and in some cases with pressing of buttons.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to Related Applications

[0002] This application claims priority to the following applications: U.S. Provisional Patent Application Serial No. 63 / 390,238, filed July 18, 2022, entitled "Next Generation Process Control and Automation System"; U.S. Provisional Patent Application Serial No. 63 / 398,441, filed August 16, 2022, entitled "Securing Next Generation Process Control and Automation Systems"; U.S. Provisional Patent Application Serial No. 63 / 417,861, filed October 20, 2022, entitled "Configuration Features of Next Generation Process Control and Automation Systems"; and U.S. Provisional Patent Application Serial No. 63 / 418,006, filed October 20, 2022, entitled "Enterprise-Level Features Provided by the NGPCAS", the entire disclosure of each of these applications is hereby expressly incorporated herein by reference. Technical Field

[0003] This application generally relates to industrial process control systems and automation systems for industrial process plants, and more particularly to a next-generation architecture for industrial process control and automation systems. Background Art

[0004] For decades, distributed process control systems and automation systems in various enterprises (such as distributed or scalable process control and / or automation systems used in power generation, chemical, petroleum, or other industrial processes such as pharmaceuticals or other types of manufacturing) have typically included one or more dedicated process controller devices that are communicatively coupled to each other via a process control network, coupled to at least one host or operator workstation, and coupled to one or more instruments or field devices via an analog bus, a digital bus, or a combined analog / digital bus.

[0005] Field devices perform processes or functions within a plant, such as opening or closing valves, turning equipment on and off, and measuring process parameters. Example field devices include valves, valve positioners, switches, and transmitters (e.g., devices including sensors for measuring temperature, pressure, or flow rate; and transmitters for transmitting the sensed temperature, pressure, and flow rate). In many industrial processes, there may be hundreds, thousands, or even tens of thousands of field devices operating to send data to and / or receive commands from one or more dedicated controller devices.

[0006] A process controller, typically located within a plant environment (i.e., within the physical confines of the plant and specifically near the field devices), receives signals (or other information related to the field devices) indicating process measurements made by the field devices; and executes a controller application that runs different control modules, such as making process control decisions, generating control signals based on the received information, and coordinating with control modules or blocks implemented in intelligent field devices (e.g., and Fieldbus field devices).

[0007] Execution of the control module causes the process controller to send control signals to the field devices via a communication link or signal path to control the operation of at least a portion of the process plant or system (e.g., control at least a portion of one or more industrial processes operating or executing within the plant or system). For example, a first group of controllers and field devices may control a first portion of a process controlled by a process plant or system, and a second group of controllers and field devices may control a second portion of the process.

[0008] Input / output (I / O) cards (sometimes referred to as "I / O devices" or "I / O modules"), which are also typically located within the plant environment, are generally communicatively disposed between the controller and one or more field devices to enable communication therebetween (e.g., by converting electrical signals to digital values and vice versa). Typically, the I / O cards serve as intermediate devices between the process controller and one or more field devices, which have inputs or outputs configured for one or more communication protocols that are the same as the communication protocol utilized by the I / O cards.

[0009] Field devices, controllers, and I / O devices are generally collectively referred to as "process control devices" and are typically located, set, or installed in the field environment of a process control system or plant. A network formed by one or more controllers, field devices communicatively connected to the one or more controllers, and intermediate devices facilitating communication between the controller and the field devices may be referred to as an "I / O network" or "I / O subsystem".

[0010] Information from the I / O network can be provided to one or more other hardware devices, such as operator workstations, personal computers or computing devices, handheld devices, data historians, report generators, central databases, or other central management computing devices typically located in a control room or in more hostile field environments remote from the plant (e.g., in a back-end environment of a process plant), via a data highway or a communication network ("process control network").

[0011] The information transmitted through the process control network enables an operator or maintenance personnel to perform desired functions regarding the process via one or more hardware devices connected to the network. These hardware devices can run an application program that enables an operator or other users (such as a configuration engineer or maintenance personnel) to, for example, configure process controllers, I / O devices, and field devices, change the settings of process control routines, modify the operation of control modules within a process controller or intelligent field device, view the current state of the process or the state of a specific device within a process plant, view the alarms generated by field devices and process controllers, simulate the operation of the process for the purpose of training personnel or testing process control software, diagnose problems or hardware failures within a process plant, etc. The process control network or data highway utilized by hardware devices, controllers, and field devices can include a wired communication path, a wireless communication path, or a combination of a wired communication path and a wireless communication path.

[0012] Generally speaking, a communication network (e.g., an I / O network in a process control environment) includes communication nodes that act as senders and receivers of data and communication links or paths that connect the communication nodes. Additionally, a communication network typically includes dedicated routers (including firewalls) responsible for directing traffic between communication nodes, and optionally dedicated devices responsible for configuring and managing the network. Some or all of the communication nodes can also be adapted to act as routers to direct traffic sent between other network devices. Network devices can be interconnected in a wired or wireless manner, and network devices can have different routing and transmission capabilities. For example, dedicated routers are capable of high-capacity transmissions, while some communication nodes can send and receive relatively less traffic within the same time period. Additionally, the connections between communication nodes on the network can have different throughput capabilities and different attenuation characteristics. For example, due to different physical or fundamental limitations inherent in the medium, fiber optic cables can provide bandwidth that is several orders of magnitude higher than wireless links.

[0013] Industrial control system providers and users have for many years organized control systems for industrial processes around the Purdue Model for the control hierarchical logic framework standardized by ISA (International Society of Automation) 95.01 - IEC (International Electrotechnical Commission) 62264 - 1 ("Purdue Model"). The Purdue Model is a network segmentation model for industrial control systems that helps conceptualize and organize the concept of industrial process architectures, particularly the security of individual network segments within an industrial process.

[0014] Very similar to how the OSI model for network communication conceptually organizes computer communication networks into layers, the Purdue Model divides industrial process architectures into multiple levels and zones. Levels 0, 1, 2, and 3 represent, respectively, the physical process (e.g., physical devices as controlled field devices and attached physical I / O devices), basic control (e.g., controllers such as PLCs that monitor and control Level 0 equipment and safety instrumented systems), area supervisory control (e.g., operator workstations and human - machine interfaces (HMIs), historical databases, configuration, etc., and supervisory control and data acquisition (SCADA) functionality and other control logic that analyze and act on Level 1 data), and plant operations (e.g., plant - wide control and monitoring, data aggregation, reporting, etc.) and are part of the manufacturing area. Levels 4 and 5 represent, respectively, the business and logistics systems of an enterprise (e.g., database servers, application servers, file servers, etc.) and the enterprise or corporate network (e.g., a broader collection of enterprise information technology (IT) systems, including connections to the public Internet) and are part of the enterprise area. A demilitarized zone (DMZ) is located between the enterprise area and the manufacturing area. Process control Levels 0 - 2 typically require a higher level of trust in the security and validity of messages, packets, and other communications, while manufacturing, company, and enterprise systems in Levels 3 - 5 typically require a lower level of trust. For example, process plant systems, networks, and devices at security levels 0 - 3 can be protected from threats from the enterprise network at security levels 4 - 5 and / or any external network above security level 5 that utilizes the enterprise network, for example, by using a DMZ and / or one or more firewalls.

[0015] As industrial processes and the associated control systems for these processes become more complex, the operational technology (OT) that enables industrial control (i.e., systems that monitor events, processes, and devices and make adjustments in industrial operations) has begun to converge with the information technology (IT) around which it was developed (i.e., systems for data-centric computing and analysis). Data from OT systems are now sought and analyzed by various IT systems. For example, data at the operational level of a factory can be used by various IT systems (e.g., at the enterprise level) to monitor factory efficiency, create or update production schedules, product delivery schedules, and the delivery of input materials, and for many other purposes. However, it is extremely difficult to achieve the desired level of security within the Purdue model because the desired level of security requires significant infrastructure and correspondingly difficult configuration, which can take up to a month or more during factory commissioning. Transferring data between the layers of the Purdue model (e.g., sending data from layer 2 to layer 3 or 4) while maintaining some security requires many security solutions including a proliferation of data relays, data diodes, and firewall devices. In some specific implementations, to mitigate communication problems caused by these complex security features, system providers and / or site engineers have avoided the Purdue model from directly sending data from control devices to the cloud, which undermines the factory security features provided by the Purdue model.

[0016] Adding to the complexity, OT systems are often older systems that are incompatible with the generally accepted principles of good security hygiene on IT networks because OT networks were often designed without considering IT security. For example, OT systems typically do not support modern identity and authentication / authorization protocols or practices, at least at the level of field devices and controllers. This often leads to various data transfer practices that are incompatible with highly secure networks. For example, there may be three or more domains between layer 2 and layer 4 of a process, and security policies may differ at each such domain. Thus, cross-layer connectivity can be challenging, leading to specific implementations where holes are punched in firewalls to get data between layers, credentials are hard-coded into devices or applications, and / or passed in unencrypted form to maintain connectivity. Additionally, due to the above reasons, the integration of third-party software is difficult, error-prone, and often insecure, and vulnerabilities are often not patched because the required downtime would result in significant costs for factory operators. These drawbacks result in process control networks that are, at best, complex, chaotic, and extremely difficult to maintain, and, at worst, insecure.

[0017] Recently, some providers and users of industrial control systems have attempted to move portions of the industrial control system to multi-purpose computing resources such as the cloud and virtualize certain aspects of the industrial control system. The purpose of these attempts is to capture and analyze the ever-expanding amount of data generated in the industrial control system and to create, for example, virtualized redundancy. However, following the Purdue model and the associated security practices it requires has led each of these attempts to suffer one or more of the drawbacks elaborated above, along with ancillary effects. Integrating cloud-based components into the Purdue model can greatly complicate security issues by requiring data from lower levels of the Purdue model (e.g., OT systems) to traverse IT infrastructure that it was never intended to traverse. When added to the traversal of the IT infrastructure (whether local or remote), the additional security infrastructure required can increase latency (especially with respect to control signals) to sometimes unacceptable levels.

[0018] In addition, some providers of industrial control systems have attempted to decouple the control algorithms that control industrial processes from dedicated controller hardware (e.g., virtualize). To this end, entire controllers have been virtualized so that they can be executed on less specialized hardware (e.g., on servers or shared computing hardware), allowing multiple copies of the control algorithms to be executed in parallel on different hardware such that one instance can serve as a backup for another primary instance. If the primary instance fails or becomes unstable, control can be transferred to the backup instance and the original primary instance can be shut down and reinstantiated on the same or different hardware. While such systems have some advantages in terms of controller redundancy since entire controllers can be instantiated multiple times on different hardware and even moved between hardware, they continue to suffer from the limitations imposed by the Purdue model. Additionally, these systems require all elements of the virtualized device (e.g., controller) to be replicated or moved together or simultaneously, which limits the flexibility of these systems. Summary of the Invention

[0019] New process plants and industrial control and / or automation system architectures enable a large amount of computer processing and IT infrastructure (referred to herein as a compute fabric) that supports process plants, industrial control facilities, or other automation facilities to be implemented in a shared, off-site, and / or virtualized manner, which alleviates many communication and security issues present in current process and industrial control systems that attempt to use shared or virtualized computing resources such as cloud-based computing or system resources for control. Specifically, when integrating and providing communication between factory devices (such as field devices), device controllers, supervisory controllers, site business operations, and enterprise operations, the new control system (which can be used to implement control, monitoring, and configuration activities in any process plant or industrial manufacturing or automation facility) does not attempt to follow the well-known, commonly followed, and accepted Purdue model. Thus, when supporting control functions related to a process plant or industrial automation facility, the system architecture can implement control functions, communication, and security measures in a more effective way by efficiently using communication and security features developed for general computing purposes outside of the process plant environment.

[0020] More specifically, the new control system architecture includes a compute fabric that is agnostic or irrelevant to the physical location where the compute fabric is implemented, and includes one or more physical controlled devices (referred to herein as a physical device pool) located at one or more specific factories, facilities, sites, or physical locations where products or processes are manufactured or implemented, such as valves, transmitters, I / O devices, etc., and also includes a transmission network that implements or provides communication between the compute fabric and the physical device pool in a robust and secure manner.

[0021] In general, a computing architecture includes a physical layer and an application layer. The physical layer includes one or more computer processing and / or storage devices, and the application layer includes computer-implemented software modules that can be implemented on the physical layer to perform various control, monitoring, and configuration activities using a pool of physical devices. In one case, the application layer of the computing architecture can be implemented as a set or sets of configuration containers or as a containerized system, where various different configuration containers and different types of containers perform different computer-implemented functions with respect to the facilities or enterprises in which the control system is implemented. The physical layer of the computing architecture can be implemented in any desired computer processing, storage, and networking equipment, such as on one or more computer processors and computer databases in the cloud, on one or more dedicated off-site locations separate from the factory, facility, or site where the pool of physical devices is located, on computer equipment located at the physical factory or facility where the pool of physical devices is located, or any combination thereof. The new control system architecture also includes a network layer that is disposed between the physical layer and the application layer and provides supervision, management, and use of physical layer resources and logical (e.g., software-based) resources when application layer activities require it, and specifically supports the timing and other requirements specific to and required for industrial process control and automation.

[0022] In addition, the various components of the application layer (e.g., the various configuration containers that make up the application layer) can be executed in any desired and configurable manner in any desired computing equipment associated with the physical layer. Thus, the configuration containers of the application layer can be implemented redundantly in each of the computer processing equipment in the same or different computer processing equipment of the physical layer, can be moved between different computer processing equipment of the physical layer to provide better computing and communication performance, can be replicated in various different processors or databases of the physical layer to provide redundancy and / or control of replicated physical equipment, etc.

[0023] The pool of physical devices can include devices that perform physical functions for controlling industrial or automated processes implemented at various different locations, sites, or facilities of an enterprise. For example, a pool of physical devices that can include field devices such as valves, valve positioners, actuators, switches, regulators, sensors, etc. uses physical hardware to perform physical functions, control, and / or other types of functionality associated with controlling an industrial or automated process. The physical hardware is located at one or more manufacturing facilities of the enterprise and interacts with the process materials or products being manufactured to provide measurement and control of physical phenomena that are being controlled / implemented as part of the manufacturing or automated process. The pool of physical devices can be set or physically located at different physical locations or environments associated with the enterprise, or can be entirely set or located only at a single physical location or environment.

[0024] During operation, the computing structure may be communicatively connected to a pool of physical devices located at one or more physical locations using one or more transport networks. The transport network may use any desired communication infrastructure and communication protocols, including any desired wired and / or wireless communication equipment / protocols. Such protocols may be any of a variety of process control protocols, such as HART, WirelessHART, Foundation Fieldbus, Profibus, OPC UA, etc., and / or may be any of a variety of general computing communication protocols. For example, the transport network may use any IP-based or packet-based protocol, including protocols that utilize publish and subscribe such as MQ Telemetry Transport (MQTT) and Advanced Message Queuing Protocol (AMQP). Additionally, the transport network may use or include any desired physical layer of a communication network, such as Ethernet, 802.11, Advanced Physical Layer (APL), etc. In this way, the pool of physical devices may send data or information in packets to one or more configuration containers in the computing structure via one or more transport networks and may receive data or information therefrom, enabling the computing structure to perform process control, monitoring, and configuration activities with respect to the pool of physical devices. Further, in some embodiments, a virtual network such as a VNet may be used to communicatively connect different remote infrastructures (e.g., which may be implemented via different cloud computing systems and / or via other suitable means) and to communicatively connect different physical locations (e.g., local infrastructure) to remote infrastructure. For network security reasons, the virtual network may be routed through a Virtual Private Network (VPN). For reliability purposes, different VNets may be used for different network providers (e.g., AT&T and Verizon). A more detailed description of the VPN is provided elsewhere in this document.

[0025] The computing structure may be implemented on a scalable hardware platform, portions of which may be physically located across one or more physical locations, which may or may not be the same physical locations associated with the pool of physical devices. Thus, in some embodiments, at least a portion of the computing structure may be implemented on a cloud computing platform, the hardware of which may be located remote from the physical location of the field environment where the pool of physical devices is located.

[0026] In general, a computing fabric supports the creation, execution, removal, maintenance, supervision, and management of multiple containerized applications, containerized services, or other containerized components (e.g., configuration containers). A pool of containerized components can include applications and / or services that have been configured into containers, each of which executes to provide specific functionality utilized by a control system and / or operations to control, monitor, and / or configure a pool of one or more physical devices, support process and / or automation control and system management, and supervise, maintain, and manage the system and its components over the life of the system. In general, containerized components provide functionality that is typically implemented by a variety of systems, networks, computing devices, DMZs, firewalls, and applications via Level 2-5 operations across the Purdue model, such as the supervision, monitoring, and control of physical industrial processes and data acquisition at Level 2 to enterprise-level IT functionality that provides business direction and functionality related to the system at Level 5. In addition, containerized components can provide even higher levels of functionality, such as the coordination and / or management between multiple systems of an enterprise or even between multiple enterprises. Thus, and advantageously, rather than utilizing the cumbersome and resource-intensive traditional architecture of Purdue Levels 2-5 and all of the numerous digital diodes, firewalls, DMZs, etc. necessary to secure a process control or automation system in a traditional architecture, the control architecture described herein utilizes only a set of containerized components executing within a computing fabric to perform a set of the same or similar process control and automation core functionality and related functionality without compromising the security of the system and, in some arrangements, providing a higher level of security than might be provided by a traditional architecture.

[0027] In addition, different functionality can be implemented by different containerized components within the computing fabric, and thus a single application or service can be configured into multiple different containerized components (e.g., different instances of an application or service implemented in respective containers). In this way, similar or related configuration containers can execute in conjunction with different physical devices and can execute on different portions of the hardware platform of the computing fabric, e.g., to create redundancy or hot backups, etc. Advantageously, various containerized components can be created (e.g., launched) and / or removed as needed or when needed, and a set of containerized components can operate together to form or provide a logical process control or automation system, which can be implemented as a “virtual process control system” for controlling one or more industrial or physical processes.

[0028] In addition, during execution, each containerized component may be communicatively connected to a specific physical component or physical device or another containerized component via a respective packet-based connection on a transport network, such that each containerized component and each physical component may be identified within the system by a unique name or identity that may be associated with a specific address (e.g., an IP address) within the transport network. To maintain a high level of communication security, containerized components and physical components may be authorized and authenticated on a per-component basis and optionally pairwise with each other, e.g., by using keys or any other suitable authorization and authentication techniques. After successful authorization and authentication, two endpoint components may transmit data, instructions, and other information to each other during a session established between the two endpoint components via one or more transport networks.

[0029] To further protect the system, one or more transport networks may include one or more virtual private networks (VPNs), such that, for example, a specific containerized component is communicatively connected to a specific physical component or to another containerized component using a point-to-point or peer-to-peer connection (such as a VPN) that is dedicated only to the specific containerized component and the specific physical component. In this way, components may securely transmit data, messages, instructions, and / or other information to each other via exclusive, point-to-point or peer-to-peer connections. Unique point-to-point or peer-to-peer connections may be established and / or torn down as needed or when needed. Further still, multi-point connections (e.g., VPNs or other suitable implementations) may be used to provide highly secure communication between multiple containerized and / or physical components. In some implementations, as an alternative or supplement to one or more point-to-point or peer-to-peer connections, point-to-point or peer-to-peer network connections may be utilized to further protect the system. The point-to-point connections, peer-to-peer connections, and VPNs of the transport network may be implemented via one or more public and / or private networks (including private enterprise networks and / or the public Internet).

[0030] Advantageously, the architecture of the computing fabric abstracts (e.g., decouples) from a specific computing platform or hardware associated with the computing fabric higher-level, business logic services, subsystems, and other software components of the application layer, and enables the higher-level software-defined services, subsystems, and other software components to use, e.g., APIs, operating system (OS) support, and other services of the network layer to dynamically, automatically, and reactively direct and cause changes in the use of the hardware and software resources of the nodes and clusters of the computing platform without any human intervention or guidance. Thus, the management of the resources of the computing platform may dynamically respond to changes in configuration and the requirements of higher-level software-defined services, subsystems, and other software components of the application layer.

[0031] In one example, industrial process control, automation, and other associated business logic are performed by higher-level software-defined services, subsystems, and other software components associated with a computing fabric, such as at the application layer. For example, a set of software-defined application layer components can collectively form a logical process control or automation system that executes in conjunction with physical components disposed at one or more physical locations or sites to implement an industrial process. Additionally, a set of third-party business logic services can also be executed at the application layer of the computing fabric, and these third-party services can be generated by a software development kit associated with the computing fabric, through which a user can develop, generate, install, and manage third-party services at the application layer.

[0032] As another example, a controller or control service in a computing fabric can be configured with one or more process control module services, parameters, and values (such as input and output tags, reference values, etc.) associated with an industrial process plant, thereby forming a configured or programmed controller service. The controller or control service can be functionally equivalent to a traditional dedicated hardware controller device as understood in the Purdue model, or the controller service can be functionally equivalent to a control routine or control module configured into and executed by a traditional dedicated hardware controller device. A container can be configured with an instance of the configured controller service, thereby forming a container image or instance of the configured controller service that, when so configured, can execute to perform a specific set of configured process control logic, for example, by using configured control module containers, tags, reference values, etc. Multiple instances or container images of the configured controller service (or other configured applications and services) can be instantiated and executed by the computing fabric.

[0033] Some of the configured containers in the computing fabric can be assigned or designated to corresponding computing nodes of the computing fabric and dynamically reassigned to different computing nodes by software-defined computing services based on the dynamically changing configuration, performance requirements, and other needs of the logical process control or automation system. In some cases, a configured container can be assigned (and reassigned) to be executed by a specific processor or specific processor core of one or more computing nodes. However, some configured containers can be fixed to the corresponding computing nodes and thus not be dynamically reassigned by the computing services due to dynamically occurring conditions. Configured containers can additionally or alternatively be fixed to other physical or logical components of the computing fabric. For example, a configured container can be fixed to another configured container, a specific data cluster, a specific processing resource (e.g., a specific physical processor or specific physical processor core of a computing node), a physical rack or a portion of a physical rack served by a specific power supply (where the physical rack physically houses the hardware of one or more computing nodes), etc. Additionally, configured containers can be nested within other configured containers, which is particularly useful in configuring and organizing a logical process control or automation system.

[0034] The application layer of the computing structure may include other types of application layer services, such as operator displays and handovers, diagnostics, analytics, security routines, reporting, data historian, service configuration, communication with external or other systems, enterprise-level applications, etc. Additionally, a set of subsystems at the application layer of the computing structure may provide or implement other virtual or logic process control-related subsystems of a logic process control system. For example, the historian subsystem may include read services, write services, and search services, whose respective configuration containers are nested within the configured historian subsystem container. In another example, the batch process control subsystem may include unit program services, recipe services, and regulatory record generation services, which may be nested within the configured batch process control system container.

[0035] Generally speaking, subsystems allow control services and other services to be easily and consistently grouped and / or managed. In one case, each computing node of the computing structure hosts a corresponding instance of each subsystem in the set of subsystems, such that the subsystem services are readily available and easily accessible to other application layer services executing on each computing node. Thus, changes to one or more subsystems can be coordinated among their corresponding instances executed at each computing node. Accordingly, the set of subsystems is highly available and readily accessible to any application layer service executing on a computing node, and in the event of a computing node failure, a computing node component failure, or a particular subsystem failure, the functionality provided by the set of subsystems can be easily maintained for the logic process control system. Subsystems may include continuous process control, event-driven process control, batch process control, state-based control, ladder logic control, historian, process user, alarm, permission, event, version control, process configuration, process I / O, etc.

[0036] Additionally, in some specific implementations, the computing structure may implement digital twins of various software-defined application services, an entire software-defined application layer, various software-defined support services, and / or an entire software-defined network layer. The digital twin of the target component / layer may execute in concert with the active target component / layer above the computing platform, and thereby receive runtime data from the field environment of the industrial process plant and operate accordingly with the same logic, state, timing, etc. as the active target component / layer. However, I / O and other types of data generated by the digital twin are prevented from being delivered to the field environment. In this way, if the active target / component fails, the digital twin of the field target / component can be simply activated to seamlessly maintain the runtime operation of the industrial process plant. Additionally, in some specific implementations, the computing structure may implement a digital twin of a physical component, which may be used as a proxy for the physical component during runtime operation.

[0037] Similarly, the computing fabric can be used to support a variety of enterprise-level services and functions, such as real-time monitoring of enterprise functionality across multiple facilities associated with the enterprise, real-time monitoring of one or more physical locations of the enterprise, providing or implementing a plant or facility operator display to enable an operator to input from any location, providing containerized services from any location, providing and instantiating controls from any location, other enterprise services, parts of a process control system or even an entire process control system, executing services that are mobile across different locations or sites, providing subscription or third-party services for the enterprise, providing centralized upgrades for the enterprise, and providing centralized monitoring of the computing fabric associated with the enterprise, etc. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Figure 1A is a block diagram of an example architecture of a next-generation process control and automation system (“NGPCAS”) that can be used to control industrial and / or automation processes.

[0039] Figure 1B is a block diagram of an example architecture of a next-generation process control and automation system (“NGPCAS”) that can be used to control industrial and / or automation processes in which an installed or legacy distributed control system is present.

[0040] FIG. 2A to FIG. 2C shows a portion of an example architecture of a next-generation process control and automation system that includes a digital twin Figure 1A and Figure 1B thereof.

[0041] Figure 3A is a block diagram of an example multi-enterprise framework for different next-generation process control and automation systems for different enterprises.

[0042] Figure 3B shows example enterprise-level computing fabric functionality that can be provided by Figure 1A and Figure 1B the computing fabric.

[0043] Figure 4 is a block diagram of an example architecture of a computing fabric that can be included in the Figure 1A and Figure 1B NGPCAS.

[0044] Figure 5A is a block diagram showing an intelligent field device that implements an Embedded Device ID (EDID).

[0045] Figure 5B is a block diagram of a sensor / transmitter device that implements an EDID.

[0046] Figure 5C is a block diagram of an I / O device that implements an EDID.

[0047] Figure 5D Shows example information that can be stored as an EDID.

[0048] Figure 5E Is a block diagram showing components in a computing structure that allow a process control system to use an EDID to ensure and / or commission components of a process plant.

[0049] Fig. 5F Is an example method for implementing an EDID in a process plant.

[0050] Figure 5G Is an example resource security technique that can be utilized by the Figure 1A and Figure 1B NGPCAS.

[0051] Fig. 6A Shows an example way in which an enterprise can use a computing structure hub and communication spoke configuration to support multiple different physical locations that can use different data and enforce governance rules to implement the NGPCAS described herein.

[0052] Figure 6B Is a diagram showing an example system hierarchy associated with an enterprise that uses the NGPCAS described herein.

[0053] Figure 7 Is a diagram showing the interconnection between an architecture provider / manager and multiple different enterprise systems that each use the Figure 1A and Figure 1B NGPCAS, which enables the manager to monitor different enterprise systems and make quick and easy configuration changes to different enterprise systems.

[0054] Fig. 8A Is a diagram showing a configuration system that enables configuration activities at one of the Figure 7 enterprise systems to add, upgrade, or otherwise change the operation of the enterprise system.

[0055] Figure 8B Is an illustration of an example user interface display that enables a user at an enterprise to make hardware and software configuration changes to that enterprise.

[0056] Fig. 9 Is a diagram showing a development system for developing and rolling out new features such as containers or products in one or more of the Figure 7 enterprise systems in a way that shortens the development and rollout time associated with new control system features while providing the enterprise system manager with the ability to control the timing and selection of changes to the enterprise system.

[0057] Fig. 10AShows an example NGPCAS control / operation graphical user interface (GUI) for a physical site.

[0058] Fig. 10B Shows another example control / operation GUI for a physical site in NGPCAS.

[0059] Fig. 10C Shows an example enterprise-level viewing GUI.

[0060] Fig. 10D Shows an example process entity deployment GUI.

[0061] Fig. 10E Shows an example control loop GUI for a physical site in NGPCAS.

[0062] Fig.10F Shows an example diagnostic GUI for multiple physical sites in NGPCAS.

[0063] Figure 10G Shows another example diagnostic GUI for multiple physical sites in NGPCAS.

[0064] Fig. 10H Shows yet another example diagnostic GUI for multiple physical sites in NGPCAS.

[0065] Fig.11A Shows an example marketplace GUI for viewing and obtaining services / applications in NGCPAS.

[0066] Fig. 11B Shows another example marketplace GUI for viewing and obtaining a specific service / application.

[0067] Fig. 12A Shows an example data ingestion GUI for multiple physical sites of an enterprise.

[0068] Fig. 12B Shows another example data ingestion GUI for multiple physical sites of an enterprise.

[0069] Fig. 12C Shows a diagnostic GUI for enterprise NGPCAS. Detailed Description

[0070] The following disclosure describes a new process plant and industrial control and / or automation system architecture that relies on a shared computing fabric to implement control, monitoring, and configuration activities in any process plant or industrial manufacturing or automation facility. The computing fabric is a high-performance computing system composed of loosely coupled storage, resource management, security, networking, and parallel processing functions linked by a high-bandwidth interconnect such as 10 Gigabit Ethernet, and may include any one or more of the following: commercial multi-purpose platforms such as Microsoft's Azure service platform; platforms owned, operated, and maintained by an enterprise or system provider and dedicated to implementing process control at one or more enterprises; computing clusters located locally and at the process plant; and so on. The sharing of resources by the computing fabric that can be shared among process plants within an enterprise or by multiple enterprises each operating one or more process plants, and the fact that the new architecture does not attempt to follow the well-known, commonly followed, and recognized Purdue model, allows for various improvements and innovations in system configuration, control, monitoring, and management.

[0071] Although the architecture will be described in detail below, the following examples illustrate several scenarios for implementing the concepts described in this specification in a system and highlight the advantages of such implementations. These examples should not be considered as limiting the available functionality, the people performing various tasks, the physical separation or location of various components, or in any other way. Instead, these examples are intended to introduce the various system components and operational aspects of the system, each of which will be described in more detail elsewhere in this specification.

[0072] Example 1

[0073] The system provider provides and manages a computing fabric serving one or more enterprises and provides various tools and programs for configuring, commissioning, controlling, and monitoring one or more process plants using the computing fabric. These tools and programs include tools for configuring control modules and control strategies to control a process plant, tools for configuring operator workstations to monitor and control a process plant, tools for performing asset management (e.g., tracking calibration, maintenance, etc.), and tools for instantiating and managing control modules that ultimately control a process plant after being configured and instantiated in the computing fabric, among others. Each enterprise included in the multiple enterprises accesses and utilizes the computing fabric and the available tools and programs to implement the industrial processes owned and / or operated by one or more enterprises in one or more corresponding process plants. Each process plant implements various aspects of its process control via various containerized applications and services instantiated in the computing fabric. These include control algorithms, input-output, and security functions, etc., and the use of containerized applications and services can facilitate various quality of service (QoS) features, including load balancing, fault tolerance, and redundancy implemented and managed by the system provider or the enterprise or by the enterprise with assistance from the provider.

[0074] Using these available devices, a first enterprise owner implements a continuous process for producing various products by refining petroleum products in a first process plant, a refinery. The process plant is provided with various field devices (e.g., valves, tanks, distillation columns, sensors / transmitters, etc.), which sense parameters in the refinery and perform control actions in response to a control algorithm using the sensed parameters as inputs. Each field device has a corresponding input / output device that receives signals from the field device, converts the signals into a common format (e.g., Ethernet packets), and transmits data from the field device to a computing fabric. A preconfigured gateway / router / aggregator that facilitates secure communication between the first process plant (e.g., collectively including I / O devices and field devices that form a set of physical devices) and the computing fabric is the only non-field device or I / O device hardware located on the premises of the first process plant.

[0075] Configuration engineers for the enterprise and / or process plant access tools provided by the system provider to configure the operation of the process plant. The configuration engineers create the necessary control algorithms by: instantiating function blocks for receiving data from field devices via I / O devices and sending commands and data to field devices via I / O devices, instantiating various processing function blocks that use the data received from field devices as inputs to the control algorithm and generate outputs to be sent to field devices, and implementing an operator workflow that allows plant operators to monitor and respond to the conditions of the runtime process plant. However, compared to known, conventional, or traditional systems, these function blocks and control modules are not downloaded to a dedicated hardware controller of the process plant. Instead, once the process plant is commissioned (e.g., physical devices are installed and wired at the process plant), the function blocks and control modules are instantiated as containerized services and / or other types of micro-packaged execution environments (“MEEES”, also referred to herein as “microservices” or “grains”) in the computing fabric.

[0076] Generally speaking, microservices, particles, or MEEEs instantiated in a computing structure can be independent software processes that can run on their own deployment schedules and can be updated independently of other microservices. Examples of MEEEs can include functional blocks, control modules, control applications, and business logic related to a process plant and / or other applications and services that otherwise support the process plant. Groups of microservices or MEEEs can interact with each other collaboratively to achieve some desired result. For example, to control a reactor, multiple strategies such as feed, reactor, product, utility, and flare systems can be defined by corresponding MEEEs, and the group of multiple MEEEs can operate collaboratively (e.g., in combination with each other) during the runtime of the process plant to implement the desired reactor control strategy. Another example is for a process control analysis application, various MEEEs can be defined to perform corresponding statistical calculations and / or statistical algorithms, and the various MEEEs can be combined and executed as needed to provide an overall predictive analysis application. A single microservice or MEEE can be configured to execute applications ranging from very broad (e.g., control strategies for an entire system or plant) to very fine-grained (e.g., only a part of a control routine or control module), as will be discussed in more detail elsewhere in this document. Therefore, due to its flexibility to be configured to execute various process control and process control-related applications from broad to fine-grained, a microservice or MEEE can be interchangeably referred to as a "particle" in this document.

[0077] In any case, a configuration engineer can also use configuration tools to specify various QoS metrics for each functional block and control module, for individual signals or variables, and for the entire process. Each of the microservices, MEEEs, or particles communicates with each other and with I / O devices via one or more secure point-to-point (PTP) and / or peer-to-peer (P2P) connections (which can include one or more types of secure, encrypted PTP and / or P2P connections such as VPNs), and each is authenticated via a digital security certificate. These secure, point-to-point and / or peer-to-peer connections and security certificates are automatically managed within the computing structure with little or no input from enterprise personnel.

[0078] Regarding QoS metrics, the orchestration service operating within the computing fabric (and provided by the system provider) implements various load balancing and redundancy schemes to ensure that the factory's QoS metrics are met. For example, the orchestration service ensures that redundant configured containers are always instantiated for any configured container that executes any part of the control algorithm, and the redundant configured containers maintain corresponding inputs and outputs to the primary configured container (i.e., maintain a parallel state), such that if the primary container fails, control can transfer to the redundant container almost immediately (e.g., within a few milliseconds). The orchestration service ensures that configured containers execute on separate hardware and are powered by separate power supplies to maintain sufficient redundancy according to policies set by the enterprise. For some microservices, configured containers, MEEEs, or particles, the orchestration service instead maintains a redundant state database that stores the state of the microservice / configured container / MEEE / particle, such that if the microservice / configured container / MEEE / particle fails or otherwise goes offline, a new microservice / configured container / MEEE / particle can be instantiated almost immediately (e.g., within milliseconds) and restored to the previously instantiated operational state of the configured container when it goes offline.

[0079] The orchestration service also provides a load balancing service to maintain sufficient memory, processing, and network resources to meet the QoS requirements of individual microservices / MEEEs / particles and the entire factory. For example, maximum latency requirements may require certain configured containers to execute physically closer to the process factory and / or on computing fabric resources with greater network bandwidth between the resources and the process factory.

[0080] To maintain security, and as described above, all containerized applications and services communicate via one or more secure, encrypted point-to-point connections (such as a VPN). In some cases, a pair of endpoints (e.g., a pair of containerized applications or services, or a containerized application / service and a physical component) communicate via a dedicated VPN, while other VPNs include multiple containerized applications / services that communicate with each other via corresponding sessions established over the VPN. Other VPNs facilitate communication between enterprise-level containerized applications / services and factory-level containerized applications / services, other VPNs still facilitate communication between vendor-level containerized applications / services and enterprise-level and / or factory-level containerized applications / services, and still other VPNs facilitate communication between user interface devices and the system. In any case, any human user and any third-party application that executes to facilitate services in the enterprise or process factory interact with one or more APIs of the system, and after the user or third-party application is authenticated (e.g., using multi-factor authentication), necessary actions can be performed through the one or more APIs.

[0081] In this way, compared to known systems, the control of the first process plant is achieved with fewer dedicated computing resources while maintaining (or improving) QoS metrics, maintaining (or even improving) safety, and eliminating or reducing the need to periodically and manually adjust the type or quantity of local computing resources according to changes in the process plant.

[0082] Example 2

[0083] At some point after the commissioning of the first process plant, the first enterprise owner decides to replicate the first process plant in the second process plant. Since the control algorithms and the necessary software have been configured for use with the first process plant, setting up the field devices and I / O hardware at the second process plant is one of the most time-consuming parts of commissioning the process plant.

[0084] In this case, the enterprise owner chooses to remove the physical I / O devices from the process plant setup and, instead, implement the functions of the I / O devices as microservices, MEEEs, or particles instantiated in the computing fabric. The enterprise owner installs the field devices at the site of the second process plant. Each field device is configured in the normal way, i.e., with device tags, ranges, limits, scales, and other data for operating the field device. Since the second process plant is a copy of the first process plant, each field device is configured and programmed according to its corresponding device in the first process plant, and an automated process is used to reduce the time required for commissioning. Each device is coupled to a media converter via its corresponding communication medium, and the media converter converts between the device's local communication medium (e.g., Foundation Fieldbus, HART, WirelessHART, OPC UA, 4 - 20mA, Ethernet, etc.) and the Ethernet protocol. Each media converter packetizes (in Ethernet packets) the various data received from the corresponding field device and transmits the packets to a preconfigured field gateway in the second process plant. The gateway facilitates secure communication between the second process plant (media converters) and the computing fabric and is the only non - field device hardware located on the site of the second process plant.

[0085] The configuration engineer who has opened the stored configuration of the first process plant within the user interface application provided by the computing fabric drags loops on the computing fabric canvas (the workspace showing the configuration containers instantiated in the computing fabric for the first process plant) to select all the configuration containers and copies the set of configuration containers (e.g., containerized applications and services) instantiated in the first process plant to the second process plant by dragging the selected configured containers to a new computing fabric canvas.

[0086] The configuration engineer instantiates digital twins of field devices and corresponding I / O microservices / MEEE / granules for each field device of the second process plant within the computing fabric, replacing the previous physical coupling of physical field devices to the physical I / O devices of the controller. For the remainder of the process control software executing within the computing fabric, the digital twin is indistinguishable from the hardware field device operating in the process plant. The digital twin is configured identically and maintains the same data as the data present on the field device itself to the extent necessary (and possible, as described below). That is, when the field device updates the value of a measured parameter or a status value, those values are uploaded to the digital twin within the computing fabric via a media converter. However, the digital twin interacts with the instantiated function blocks, control modules, and other control algorithms within the computing fabric. For the same reason, the function blocks, control modules, and other control algorithms instantiated within the computing fabric (or within the hardware controller) send commands and data to the digital twin, which conveys those commands and data back to the hardware field device of the second process plant via a media converter.

[0087] In the case where the hardware field device is in place and coupled to the digital twin executing within the computing fabric via a media converter, the configuration engineer instructs the computing fabric to bring the process online at the second process plant, for example, by activating a single user control. In response, the computing fabric initializes the process control system, and the system is online and ready to begin testing and / or operation within the next few minutes, greatly simplifying the process of bringing the second process plant online.

[0088] In addition to simplifying its commissioning, the digital twin contributes to the robustness of the operation of the second process plant. In the case where a particular field device becomes unavailable (temporarily or otherwise), the digital twin can prevent an abnormal condition in the operation of the entire process plant. For example, a brief loss of connectivity or an increase in latency between the process plant and the computing fabric may have no impact on the overall process because the digital twin can continue to provide data (e.g., simulated data, assumed steady-state data, etc.) to the control algorithms (within safety parameters, of course) during the brief anomaly. Similarly, if the self-reported (or system-determined) status of a sensor changes to indicate that the sensor value is no longer reliable, the digital twin can be programmed to provide data from another source (e.g., an analog value, a value calculated based on other measured parameters, etc.) to replace the unreliable sensor data.

[0089] The use of the digital twin also contributes to the cost-effective maintainability of the process plant. In the case where a hardware sensor (e.g., a thermocouple or a pressure sensor) fails, in many instances, the sensor can be replaced without stopping or interrupting the operation of the process because the digital twin can continue to provide data (simulated or otherwise) to the control algorithms even when the hardware sensor is offline.

[0090] Example 3

[0091] When the first process plant and the second process plant are started and running, the enterprise owner (or its user) can manage both of them at the enterprise level using various tools that can be obtained from the system provider. Since the various facilities owned by the enterprise are executed in the computing structure, the enterprise owner can securely access data related to the process plant or data related to the entire enterprise individually at any time and from anywhere. As described above, access to the system is provided to all persons and / or third-party applications via an API, and access to the API requires multi-factor authentication. Therefore, after authentication, the user can access tools, metrics, and other functions that allow the management of the enterprise and its various process plants.

[0092] Enterprise-level users can create or use any number of dashboards and tools to facilitate an enterprise-level view of the process plant, either individually or jointly. Enterprise-level users can decide to view real-time production metrics for a single plant (e.g., production output, quality metrics, etc.), and can also decide to compare real-time metrics between plants, and plot the metrics of individual plants over time for comparison. When noticing that one plant performs differently from another (e.g., produces higher-quality products, operates more efficiently, etc.), the enterprise-level user can decide to dig deeper into the reasons for the different plant performance. Going to the application or service marketplace hosted by the system provider, the enterprise-level user can purchase or subscribe to an analysis service or tool, which is instantiated in the computing structure upon purchase or subscription and can be used by the enterprise-level user to analyze the performance of the process plant.

[0093] The analysis shows that the tuning of one of the process plants can be optimized for better performance, and recommends different tools for retuning and optimizing the process plant. The enterprise-level user can contact the control operators of the plant to notify them of the available tools. The tool is then subscribed to or purchased for the enterprise or for individual plants only, and is instantiated in the computing structure at the plant level and / or enterprise level.

[0094] The tool can determine that the process plant needs to be retuned in a way that requires an updated copy of one or more control algorithms. In this case, the tool continues (using input from the operator) to create the updated control algorithms. The updated control algorithms are instantiated in the computing structure but are not initially placed under the control of the process plant. Instead, the updated control algorithms are implemented in parallel with the active control algorithms (e.g., in simulation mode) to ensure that they do not adversely affect the operation of the process plant and will actually improve the operation of the process plant. Then, when it is determined that the updated control module will function properly, the operator immediately switches the control of the process to the new control algorithm (e.g., without interrupting the process).

[0095] Meanwhile, an operator at one of the process plants may notice that the adjustments to the process for which the operator is responsible appear to be fluctuating. The operator contacts a customer service representative from the system provider to help determine what is causing the fluctuations in the adjustments and, using the dashboards available to the system provider's representatives, they determine that the fluctuations in the adjustments may be the result of several related factors in the computing fabric, including the movement of microservices / MEEEs / granules between the hardware resources used for load balancing, changes in available processing and network bandwidth, and the physical distance between the computing fabric resources and the process plant in question. The customer service representative may recommend using a real-time adjustment application.

[0096] The real-time adjustment application monitors the latency between the computing fabric and the physical resources in the process plant and automatically adjusts the adjustments to the control algorithms to account for changes in latency due to network conditions, physical distance, and processor bandwidth. In this example, after implementing the real-time adjustment application, the operator notices that the subject process is generally more stable.

[0097] However, if the real-time adjustment application indicates that there is a control loop that the real-time adjustment application cannot automatically adjust, the operator and the customer service representative working together can determine that the control loop in question requires minimal latency and, therefore, the customer service representative can "pin" the configuration container associated with the control loop to the physical hardware resources in the computing fabric that meet the latency requirements and, in particular, are physically close to the process plant in question. Additionally, the customer service representative can additionally dedicate specific hardware resources to the configuration container associated with the control loop to prevent those resources from being loaded to an extent that would cause latency to disrupt the process.

[0098] Example 4

[0099] The owner of an enterprise with multiple process plants in operation can determine that consolidating the operators who manage the various processes will be more efficient. Although a certain number of maintenance and other personnel must be physically present at each process plant, the fact that the computing fabric is essentially securely accessible from anywhere with sufficient network connectivity allows the operators to be located anywhere. Therefore, the enterprise owner can determine that all of its operations can be consolidated into three operations centers that are roughly equally spaced around the world, such that its operations can be sustained 24 hours a day without any of its employees having to work outside of the first shift (business) hours at their respective sites.

[0100] The enterprise owner staffs each operations center with a sufficient number of operators to run all of the plants it operates worldwide. As a result of consolidating the operations centers, the number of employees required for redundancy (e.g., considering employee illness, vacations, etc.) is reduced.

[0101] Example 5

[0102] Individually, a second enterprise that wishes to improve the efficiency of its traditional architecture (first) process plant and expand to add additional process plants expects to do so by implementing a system provided by a system provider. The system provider creates an account for the second enterprise, and the second enterprise personnel subscribe to and / or purchase the necessary and desired tools and software packages. The configuration engineer of the second enterprise uses tools available from the system provider to convert the configuration file of the traditional controller currently operating in the first process plant into the configuration of a containerized service (e.g., microservice, MEEE, or granule) to be executed on a computing fabric. Meanwhile, the system provider arranges for the on-site installation of a pre-configured gateway at the first process plant that securely couples the I / O devices to the computing fabric. After ensuring that the computing fabric is configured to meet the necessary QoS metrics, the configuration engineer and operator of the first process plant use the configured computing fabric to simulate the operation of the process plant to confirm that it appears to be properly configured, and then bring the process plant online using the computing fabric.

[0103] When the newly reconfigured process plant is operating using the computing fabric and the traditional controller hardware is no longer operating the process plant, the second enterprise owner maintains the process plant rather than stopping the operation of the traditional controller configuration. In fact, the system provider helps the enterprise personnel configure the traditional configuration of the first process plant such that in the event that the computing fabric (or its network connection) becomes unavailable or unstable, the control of the process plant can fail over to local control using the traditional system. Thus, the traditional system runs in parallel as a backup control solution.

[0104] Meanwhile, the second enterprise owner can decide to keep the safety instrumented systems (SIS) for the process in place at the first process plant rather than migrating them to the computing fabric.

[0105] When the second enterprise owner tends to expand to add new process plants, the second enterprise owner purchases the necessary field devices to install in and operate these process plants. Each field device includes a burned-in hardware ID indicating its brand, model, options, etc. When purchasing field devices, the burned-in hardware IDs of the purchased devices are registered to the second enterprise owner in a database that facilitates the configuration of field devices in the new process plants. When configuring the control module, the configuration engineer can select each device from the database such that the computing fabric creates a digital twin for each device that is programmed accordingly. The plant engineer who configures the physical field devices in the new process plant scans each device and places each device based on its hardware ID. When the physical devices are connected to the computing fabric via their respective media converters, they are automatically associated with their digital twins based on their hardware IDs and are programmed according to the programming of their digital twins (if programmable).

[0106] When an additional process plant is configured to operate on a remote computing infrastructure, the second enterprise owner determines that since only one network provider serves some of the process plant locations, a control solution that can maintain the security (if not full operation) of the process plant locations is still advisable in the event that the network connection to the remote computing infrastructure becomes unavailable. To this end, the enterprise owner physically locates certain computing infrastructure resources on-site such that in the event of a communication failure between the process plant and the remote computing infrastructure, the local computing infrastructure can maintain the security and / or operation of the process plant. The local computing infrastructure resources execute redundant containerized services, microservices, MEEE, or particles (orchestrated by an orchestration service in the computing infrastructure) such that control of the process plant can fail over to the local computing infrastructure when necessary.

[0107] Example Next Generation Process Control and Automation System Architecture

[0108] Figure 1A is a block diagram of an example architecture of a next-generation process control and automation system (“NGPCAS”) 100 that can be used to control industrial and / or automation processes. For example, the NGPCAS 100 can be used by chemical, petroleum, industrial, manufacturing, filling and packaging, or other types of enterprises to manufacture, refine, transform, generate, or produce physical materials or products. For ease of reading, the NGPCAS 100 may be referred to interchangeably herein as “architecture 100” or “system 100”.

[0109] The NGPCAS 100 includes a computing infrastructure 102 communicatively connected to a plurality of physical devices 105, 108 (e.g., a pool of physical devices). The plurality of physical devices 105, 108 (or pool of physical devices) includes devices that perform physical functions for controlling industrial or automation processes provided by an enterprise. For example, the plurality of physical devices 105, 108 can include field devices such as valves, valve positioners, actuators, switches, regulators, sensors (e.g., temperature, pressure, level, and flow rate sensors), spectrometric devices, pumps, motors, transmitters, etc., some of which can be intelligent field devices. Some of the physical devices among the physical devices 105, 108 can have corresponding on-board processors, memories, and computer-executable instructions stored on the memories, where the stored computer-executable instructions can be executed by the on-board processors to perform, for example, control and / or other types of computations, alarm functions, and / or other functionality associated with controlling industrial or automation processes using the physical devices 105, 108. The physical devices 105, 108 can operate and / or change their behavior responsively based on control signals and / or other instructions received from the computing infrastructure 102, as described in more detail elsewhere herein.

[0110] The pool of physical devices 105, 108 of system 100 can be set or physically located at different physical locations, sites, factories, or environments 115, 118 (such as Figure 1A shown), or the pool of physical devices 105, 108 can be set entirely or only located at a single physical location, site, factory, or environment (not shown). One or more physical locations 115, 118 where the physical devices 105, 108 are located are generally and collectively referred to herein as the "field environment 120" of system 100. For example, the field environment 120 of NGPCAS 100 can include one or more buildings, sites, or outdoor areas, factories, oil rigs or platforms, rooms, cabinets, etc. where at least one physical device 105, 108 of system 100 is physically located and where at least one physical device 105, 108 operates in conjunction with the computing fabric 102 to control an industrial process or an automated process. The term "field environment 120" can be interchangeably referred to herein as the "process environment 120", "automation environment 120", "factory environment 120", or "physical environment 120" of NGPCAS 100.

[0111] Each physical location or environment 115, 118 where at least one physical device 105, 108 of system 100 is disposed includes one or more local physical I / O (input / output) interfaces 125, 128 configured to receive, condition, and deliver (e.g., to computing fabric 102 via one or more transmission networks 130) I / O signals or I / O data generated by local physical devices 105, 108, and optionally provide control signals, instructions, and / or other information generated by computing fabric 102 and received at locations 115, 118 via one or more transmission networks 130 to designated recipient local physical devices 105, 108. Each local physical device 105, 108 is physically connected to local physical I / O interfaces 125, 128, for example, via respective wired or wireless links. Thus, in one embodiment, local physical I / O interfaces 125, 128 may include I / O hardware ports (which may include wired and / or wireless ports or interfaces) and / or a pool of other I / O hardware resources shared among multiple local physical devices 105, 108 at respective locations 115, 118. Additionally or alternatively, local physical I / O interfaces 125, 128 may include individual instances of I / O hardware resources, where each individual instance is included in and exclusive to one and only one local physical device 105, 108. In general, the present disclosure uses the term “physical component” 135, 138 to collectively refer to the combination of a single physical device 105, 108 (e.g., a single field device) and the physical I / O interface 125, 128 used by the single physical device to convey information via transmission network 130 (e.g., the attached physical I / O interface of a single physical device 105, 108). Thus, in terms of terminology, NGPCAS 100 includes a pool of physical components 135, 138, each physical component including respective field devices 105, 108 and respective physical I / O interface resources 125, 128 used by the respective field devices 105, 108 to communicate with computing fabric 102. In general, physical components 135, 138 of NGPCAS 100 operate or would be included at level 0 of the Purdue model of a conventional process control system.

[0112] As Figure 1AAs shown, physical components 135, 138 at each location 115, 118 are communicatively coupled to computing fabric 102 via one or more transmission networks 130. The one or more networks 130 can include one or more wired and / or wireless networks. Additionally, the one or more networks 130 generally can include one or more packet networks, such as one or more Ethernet-compatible packet networks, each of which may or may not include an Advanced Physical Layer (APL). Accordingly, physical I / O interfaces 125, 128 enable I / O data or information generated by physical devices 105, 108 to be delivered in packetized form via the one or more transmission networks 130. For example, physical I / O interfaces 125, 128 can convert I / O data or information generated by physical devices 105, 108 into packets, can encapsulate the I / O data or information in packets, or can otherwise convert the I / O data or information into a packetized format for delivery to computing fabric 102 via packet network 130.

[0113] In some embodiments, physical site or location 115 can include a gateway / router / aggregator 148, which for ease of discussion is referred to herein as "gateway 148". Generally, gateway / router / aggregator 148 receives outgoing data and information to be sent to computing fabric 102 and causes the outgoing data and information to be sent via transmission network 130 (e.g., in individual packets and / or in packets in which data / information generated by multiple physical components 138 is aggregated into a single packet), and gateway / router / aggregator 148 receives incoming data and information received from computing fabric 102 (e.g., in individual packets and / or aggregated packets) and routes the information, instructions, and / or data included therein to a designated receiving physical component 138 at site 115. A physical location can include a corresponding gateway 148 (e.g., location 115), a physical location can exclude any gateway 148 (e.g., location 118), and in some configurations, multiple physical locations can share, for example, a single gateway 148 ( Figure 1A not shown).

[0114] Turning now to computing fabric 102 of NGPCAS 100, computing fabric 102 is implemented on a scalable hardware platform, portions of which can be physically located at one or more physical locations ( Figure 1A not shown). The physical location(s) at which at least a portion of the hardware platform of computing fabric 102 is physically located can be, or can not be, the physical locations 115, 118 at which physical devices 105, 108 of system 100 are physically located. For example, the entire hardware platform on which computing fabric 102 is implemented can be located away from any of the locations 115, 118 of the in-field environment 120 of system 100 (e.g., as Figure 1Aas shown), or the corresponding portions of the hardware platform on which the computing structure 102 is implemented may be located at one or more of the physical device locations 115, 118 of the in-situ environment 120 ( Figure 1A not shown). In some embodiments, at least a portion of the computing structure 102 may be implemented on a cloud computing platform, the hardware of which may be located remote from and / or at the physical locations 115, 118 of the in-situ environment 120 of the system 100.

[0115] The computing structure 102 of the NGPCAS 100 supports the creation, execution, removal, maintenance, supervision, and management of multiple containerized applications and / or services 140 or a pool of containerized applications and / or services, which are generally interchangeably referred to herein as the "multiple containerized components 140 or pool of containerized components", the "multiple micro-encapsulated execution environments 140 (MEEE 140) or pool of micro-encapsulated execution environments", or the "multiple particles 140 or pool of particles" of the NGPCAS 100. That is, the pool of containerized components / micro-encapsulated execution environments / particles 140 may include applications and / or services that have been configured into containers and / or other types of micro-encapsulated execution environments or particles, each of which may be executed to provide specific functionality and / or operations utilized by the system 100 to control the physical devices 105, 108, support processes and / or automation control and system management, and supervise, maintain, and manage the system 100 and its components during the life of the system 100. Generally speaking, the containerized components / MEEE / particles 140 of the NGPCAS 100 provide functionality typically implemented by a variety of systems, networks, computing devices, DMZs, firewalls, and applications via levels 1-5 of the Purdue model, such as basic control of the physical industrial devices and processes of the system 100 at level 1 to enterprise-level IT functionality providing business direction and functionality related to the system 100 at level 5. In addition, the containerized components / MEEE / particles 140 may provide an even higher level of functionality, such as coordination and / or management between multiple systems 100 of an enterprise or even coordination between multiple enterprises. Thus, and advantageously, rather than utilizing the cumbersome and resource-intensive traditional architecture of Purdue levels 1-5 and all of the numerous digital diodes, firewalls, DMZs, etc. necessary to secure a process control or automation system in the traditional architecture, the NGPCAS 100 only utilizes a set of containerized components / MEEE / particles 140 executed in the computing structure 102 to perform a set of the same or similar process control and automation cores and related functionality without compromising the security of the system 100 and generally with increased security of the system 100. A more detailed discussion of the security techniques utilized within the architecture of the NGPCAS 100 is provided elsewhere in this disclosure.

[0116] Typically, different functions are implemented by different containerized components / MEEE / particles 140 within the computing structure 102. If needed, a single application or service can be configured into multiple different containerized components / MEEE / particles 140 (e.g., different instances of an application or service implemented in respective containers), such as to execute in conjunction with different physical devices, execute on different parts of the hardware platform of the computing structure 102, create redundancy or hot backups, etc. The various containerized components / MEEE / particles 140 can be created (e.g., launched) and / or removed as needed by or when the system 100 requires. A set of containerized components / MEEE / particles 140 can cooperate to form or provide a logical process control or automation system 145 (also interchangeably referred to herein as a "virtual process control system" 145) for controlling one or more industrial or physical processes by controlling and leveraging the physical components 105, 108 disposed in the field environment 120 of the NGPCAS 100. Typically but not necessarily, the set of containerized components / MEEE / particles 140 forming the logical process control system 145 is a subset of all the containerized components / MEEE / particles 140 provided by the computing structure 102.

[0117] During execution, each containerized component / MEEE / particle 140 can be communicatively connected to a specific physical component 135 / 138 or another containerized component / MEEE / particle 140 via a respective packet-based connection through the transport network 130. Thus, each containerized component / MEEE / particle 140 and each physical component 135 / 138 of the NGPCAS 100 are identified within the system 100 by a unique name, identifier, or identity that can be associated with a specific address (e.g., an IP address) within the transport network 130. Generally speaking, the physical components 135 / 138 can be the sender or provider of I / O data and information received or consumed by one or more containerized components / MEEE / particles 140. In some cases, the containerized component / MEEE / particle 140 can be the sender or provider of control signals or other instructions received or consumed by the physical component 135 / 138. In some cases, the containerized component / MEEE / particle 140 can be the sender or provider of data received or consumed by another containerized component / MEEE / particle 140. To maintain the security of the NGPCAS 100, the containerized components / MEEE / particles 140 and the physical components 135 / 138 can be authorized and authenticated on a per-component basis and optionally pairwise with each other, such as by using keys or any other suitable authorization and authentication techniques. After successful authorization and authentication, the two endpoint components 140, 135 / 138 can transmit data, instructions, and other information to each other during a session established between the two endpoint components 140, 135 / 138 through one or more networks 130.

[0118] To further protect the NGPCAS 100, one or more transmission networks 130 may include one or more secure, point-to-point (PTP) and / or peer-to-peer (P2P) connections, which may include one or more secure, encrypted point-to-point and / or peer-to-peer connections, such as virtual private networks (VPNs) and other types of secure, encrypted PTP and / or P2P connections. In one embodiment, a particular containerized component / MEEE / particle 140 is communicatively connected to a particular physical component 135 / 138 using a secure, encrypted point-to-point or peer-to-peer connection (such as a VPN or other suitable implementation) that is dedicated only to the particular containerized component / MEEE / particle 140 and the particular physical component 135 / 138. For example, the particular physical component 135 / 138 and the particular containerized component / MEEE / particle 140 may be endpoints of an exclusive point-to-point VPN that is utilized only by the two endpoint components 135 / 138 and 140 (e.g., and not by other components of the system 100), such that the components 135 / 138, 140 may securely transfer data, messages, instructions, and / or other information to each other via the exclusive point-to-point VPN. In a similar manner, a particular containerized component / MEEE / particle 140 may be communicatively connected to another particular containerized component / MEEE / particle 140 using a secure, encrypted point-to-point (P2P) connection that is dedicated only to the two containerized components / MEEE / particles (which may or may not be implemented via a VPN), and the two containerized components / MEEE / particles may securely transfer data, instructions, and / or other information to each other via their dedicated, secure, and encrypted point-to-point connection. The dedicated point-to-point and / or peer-to-peer connection between a single containerized component / MEEE / particle 140 and a single physical component 135 / 138 or a single other containerized component / MEEE / particle 140 may be established as needed or when needed, and may be torn down when needed (e.g., upon completion of data exchange, when system resources need to be released, etc.).

[0119] In one embodiment, a single physical location 115, 118 may be communicatively connected to the computing structure 102 via a secure, encrypted location-to-location PTP or P2P connection (such as a location-to-location VPN or other suitable implementation) that is dedicated to the particular location 115 / 118 and the computing structure 102 (not shown). Physical components 135 / 138 disposed at the particular location 115 / 118 and containerized components / MEEE / particles 140 executing on the computing structure 102 may transfer data and information to each other via the location-to-location PTP or P2P connection. By way of illustration, in Figure 1AIn the example arrangement shown, location 1 (label 115) includes a local gateway / router / aggregator 148 that establishes a location-to-location VPN with computing structure 102 such that, for example, the local gateway 148 is one endpoint of the location-to-location VPN and the VPN gateway application 150 executing on the computing structure 102 is the other endpoint. The containerized components / MEEE / granules 140 and physical components 105 disposed at location 115 may authenticate to the location-to-location VPN and establish corresponding sessions (e.g., via the VPN gateway application 150 and local gateway 148) through the location-to-location VPN to transfer data and information to each other. Additionally or alternatively, architecture 100 may support subnets of the location-to-location VPN such that the various physical components 135 / 138 and various containerized components / MEEE / granules 140 disposed at location 115 communicate with each other via one or more subnets within the location-to-location VPN. Further, in the above description, secure, encrypted PTP and / or P2P connection types other than VPNs may additionally or alternatively be utilized.

[0120] In one embodiment, a multi-location (e.g., multi-point) secure encrypted connection may exclusively serve the computing structure 102 and the physical components 135 / 138 disposed at multiple selected physical locations 115, 118 of system 100, where the selected physical locations are a subset of all the physical locations served by system 100. In this embodiment, each of the multiple physical locations 115, 118 may include a corresponding local gateway 148 to the multi-location secure encrypted connection and may be associated with one or more gateway applications 150 executing on the computing structure 102. The various physical components 135 / 138 disposed at the multiple locations and the containerized components / MEEE / granules 140 corresponding to the multiple locations may authenticate to the multi-location secure and encrypted connection and may establish sessions (e.g., via one or more gateway applications 150 and the corresponding local gateway 148) through the multi-location secure and encrypted connection to send and receive data and information to / from other components 140, 135, 138. The multi-location secure encrypted connection may be implemented as needed by using a VPN or other suitable mechanisms, such as multiple PTP and / or P2P connections, point-to-multipoint (PTM) connections, etc.

[0121] In one embodiment, all containerized components / MEEE / particles 140 of the computing structure 102 and all physical components 135 / 138 at all physical locations 115 / 118 of the NGPCAS 100 can be served by a single system-level secure encrypted connection, which can be implemented as a system-level VPN or other suitable type of system-level secure encrypted connection. Each containerized component / MEEE / particle 140 and physical component 135 / 138 of the system 100 can authenticate to the system-level connection and can establish sessions with other components 140, 135, 138 through a secure, encrypted system-level connection (e.g., via the respective local gateway 148 and one or more gateway applications 150) in order to send and receive data and information to / from other components 140, 135, 138.

[0122] In addition, if desired, various secure, encrypted PTP, P2P, PTM, and / or multipoint connection technologies can be combined (e.g., by leveraging subnets) to provide even more security. For example, a specific physical component 135 / 138 and a specific containerized component / MEEE / particle 140 can establish and utilize a dedicated point-to-point VPN as a subnet of the location-to-location VPN, a group of containerized components / MEEE / particles 140 can be included in a subnet supported by the computing structure 102, and so on. Additionally, any secure, encrypted connection technology used within the NGPCAS 100 can be used in combination with endpoint authorization and authentication technologies, thereby providing even greater security for the NGPCAS 100.

[0123] Furthermore, in some specific implementations and as described above, as a supplement or alternative to using a VPN, one or more transport networks 130 can utilize one or more point-to-point private connections (such as point-to-point and / or peer-to-peer Ethernet connections over a private enterprise network, and / or other types of secure, encrypted PTP, P2P, MTP, and / or multipoint connections) to securely deliver information between components of one or more NGPCAS systems 100. For example, point-to-point private connections can be established between two components 138, 140, between the physical sites 115, 118 and the computing structure 102, and so on. However, for ease of discussion herein, the description refers to "VPN" technology (not for limiting purposes), but rather generally and categorically describes secure transmission over the network 130. It should be understood that any of the systems, methods, and technologies described herein can additionally or alternatively utilize other types of secure, encrypted point-to-point, peer-to-peer, and / or multipoint connections for secure transmission.

[0124] A user 155 of the NGPCAS 100 can authenticate with the VPN 158 to interact with the NGPCAS 100 (e.g., interact with components 140, 135 / 138 of the NGPCAS 100) to, for example, view or obtain data and / or other information, change parameter values, configure or modify control routines of the system 100 and other aspects of the configuration, etc. As used herein, the "user" 155 can be a person or human user, or the user 155 can be an application or service executing on an external computing device not included in the system 100, such as an automated user. For example, Figure 1A The user 155 shown can be equivalent to a person and an application / service that access data and information related to traditional process control or an automated factory at any level from level 1 - 5 of the Purdue model.

[0125] The human user 155 can be a person acting as an agent of an enterprise that owns, manages, operates, or is otherwise associated with the NGPCAS 100. For example, the user 155 can be an enterprise configuration engineer, a system operator, an asset manager, a supply chain manager, an engineering or product manager, a technician, an installer, an authorized third party (e.g., a contractor), a business manager, etc. Generally, the human user 155 interacts with the NGPCAS 100 via a computing device operated by the user (e.g., a laptop computer, a tablet computer, a mobile computing device, an in - vehicle computing device, etc.), and an application, a web browser, or a similar executable program executes on the computing device to provide a user interface that can be operated by the human user 155 and a secure communication connection with the NGPCAS 100 via the VPN 158. For example, in order to interface with the NGPCAS 100 using his or her computing device, the human user 155 can utilize a specific MEEE 140 (e.g., an application downloaded from the computing fabric 102) that has been configured and authorized to execute at the computing device operated by the user, or the human user 155 can utilize a web browser executing at the computing device operated by the user. Also, for example, the user 155 can be an automated user, such as an external application or service, e.g., an application or service executing on an external computing device or system. The automated user 155 may not provide any user interface for a human user, but can still establish a communication connection with the NGPCAS 100 via the VPN 158 to obtain or provide data and / or other information. Examples of the automated user 155 include third - party generated applications, external data sources (such as weather data sources, material management systems, etc.). In some cases, the automated user 155 can be a specific containerized component or MEEE 140 that has been configured and authorized to execute on a remote computing device or system.

[0126] In any case, regardless of whether user 155 is a human user or an automated user, user 155 securely accesses data and / or other information at NGPCAS 100 by using an API (Application Programming Interface) 160 (via a VPN 158 authenticated by user 155). In an example specific implementation, user 155 may use different APIs 160 to access different containerized components / MEEE / particles 140 and physical components 135 / 138 of computing structure 400. In an additional or alternative implementation, user 155 may use a single API 160 to access NGPCAS 100, and API 160 may form communication connections with containerized components / MEEE / particles 140 and physical components 135 / 138 within NGPCAS 100 as needed to obtain or provide the required data and / or information to / from user 155. For example, one or more APIs 160 themselves may be containerized components / MEEE / particles 140 of computing structure 102.

[0127] Figure 1A A particular user 155 of interest shown separately in [figure] is the architecture provider / manager 161 of NGPCAS 100. Generally speaking, the architecture provider / manager 161 provides supervision, management, and support for NGPCAS 100 and optionally other systems 100 of the enterprise and / or one or more systems of other enterprises (e.g., the corresponding architecture, hardware, and software resources of the systems, etc.). For example, the architecture provider / manager 161 may be within the scope of the provider of system 100. The architecture provider / manager 161 may have exclusive access to a set of applications and services that can be created, configured, and / or executed by the provider and / or manager 161 of NGPCAS 100 (e.g., in one implementation, it may be a subset of the entire set of containerized components / MEEE / particles 140 provided by computing structure 102). In a sense, the architecture provider / manager 161 supervises and manages the architecture platform resources utilized by one or more NGPCAS 100s via this set of applications and services, and thus, can generally perform a wider range of logical functions, such as engineering across various enterprise systems; providing an application / service "store" including a library of various applications and / or services, which the architecture provider / manager 161 can configure and distribute instances of these applications and / or services to NGPCAS 100 for its use; distributing and / or reallocating system resources between different physical locations; and so on. Each application or service created, configured, and utilized by the architecture provider / manager 161 may be implemented by one or more containerized components / MEEE / particles 140. Additionally, as Figure 1AAs shown, the architecture provider / manager 161 (whether a human user or an application or service executing on a remote computing device) can authenticate to the VPN 162 and can securely read and / or write data and / or other information, send instructions, and / or otherwise interface with the various other containerized components / MEEE / particles 140 and physical components 135 / 138 of the NGPCAS 100 using one or more APIs 165. For example, one or more of the APIs 165 can itself be a containerized component / MEEE / particle 140 of the computing fabric 102.

[0128] In one embodiment, different subsets of the containerized components / MEEE / particles 140 can communicate via the respective VPNs 162 with specific physical components 135 / 138, a specific location 115, a specific set of multiple locations, the entirety of all physical locations of an enterprise, or the corresponding physical components and / or corresponding physical locations of multiple different enterprises. For example, the containerized components / MEEE / particles 140 exclusively utilized by the architecture provider / manager 161 can be communicatively connected via a provider-specific VPN 162 different from the VPNs utilized by other containerized components / MEEE / particles 140 of the enterprise to the other containerized components / MEEE / particles 140 and / or physical components 135 / 138 of the enterprise to communicate with the physical components 135 / 138 at the enterprise location. As another example, the containerized components / MEEE / particles 140 provided by the architecture provider / manager 161 can utilize a first enterprise-specific VPN 162 to communicate with the containerized components / MEEE / particles 140 and physical components 135 / 138 of the first enterprise and can use a different, mutually exclusive enterprise-specific VPN to communicate with the containerized components / MEEE / particles 140 and physical components 135 / 138 of a second enterprise (not shown). Thus, the architecture provider / manager 161 is able to securely and independently oversee and manage the respective resources of individual enterprises and / or different parts of different enterprises in a highly secure manner. In fact, the security of the NGPCAS 100 (and in some cases, multiple NGPCAS 100s supported by the architecture provider / manager 161) can be customized according to desire or need by using one or more of the VPN technologies described herein, either individually or in combination.

[0129] Thus, based on the above discussion, the containerized component / MEEE / particle 140 provided by the computing structure 102 of the NGPCAS 100 includes runtime logic functionality (e.g., control and automation logic, data acquisition, etc.) typically implemented by traditional process control and automation systems at levels 1 and 2 of the Purdue model. The containerized component / MEEE / particle 140 also includes other logic functionality related to the runtime logic and typically implemented by traditional process control and automation systems at levels 2 and 3 of the Purdue model, such as: system and component deployment; engineering; configuration; provisioning; commissioning; security of systems, devices, applications / services, and users; security logic and systems; networking; monitoring; analysis; maintenance and diagnostics of industrial processes and equipment / assets; simulation; testing; detection and repair / restoration of faults and performance degradation; operator interface; redundancy, backup, and other functionality related to the availability of the system 100 and its components and devices; historical recording of data; compliance; management of manufacturing or production workflows, execution, and operations; and so on. In addition, the containerized component / MEEE / particle 140 may include logic functionality typically provided in traditional process control systems at the higher levels 4-5 of the Purdue model, such as enterprise resource planning, production scheduling, material usage, transportation, inventory levels, and other enterprise-level functionality. Further, such containerized component / MEEE / particle 140 may include logic functionality introduced into the computing structure 102 via a third party, such as applications and / or services that have been authored by a third party and approved and authorized by the enterprise for utilization within the NGPCAS 100.

[0130] In addition, the collection of containerized components / MEEE / particles 140 provided by the computing structure 102 may include containerized components / MEEE / particles 140 of the network layer ( Figure 1A not shown in) of the computing structure 102, where such containerized components provide lower-level logic functionality that can be utilized by or with respect to other containerized components / MEEE / particles 140 as needed. Such lower-level logic functionality may include, for example, a collection of APIs 160, 165 used by the user 155 to interface with the various containerized components / MEEE / particles 140 and physical components 135 / 138 of the NGPCAS 100; computing functionality (e.g., for assigning and reassigning various containerized components to computing structure nodes Ny and / or data center clusters Cx, which is discussed in more detail elsewhere in this document); storage functionality (such as managing and allocating storage areas for working data associated with the execution of containerized components); networking functionality (e.g., for data and information delivery between various containerized components, its mechanisms, timing, etc.); and may be used by the application layer of the computing structure 102 ( Figure 1AOther services utilized by the containerized component / MEEE / particle 140 executed at (not shown in the figure) such as discovery, security, encryption, certificate authorization, key management, authentication, time synchronization, service location, console support, life cycle management, etc.; and so on.

[0131] In addition, the set of containerized components / MEEE / particles 140 provided by the computing fabric 102 may also include lower-level logical functionality (such as computing, utilities, primitives, etc.) that can be utilized by the containerized components / MEEE / particles 140 at the application layer and network layer of the computing fabric 102. Examples of such functionality include computing functions (e.g., data aggregation and / or manipulation such as average, maximum, minimum, etc.); more complex computations or algorithms (e.g., principal component analysis (PCA), partial least squares (PLS) prediction, and other types of statistical computations and / or analyses); and process control-specific or automation-specific computations (e.g., function blocks, shadow blocks, control module operations, etc.), and so on.

[0132] In addition, Figure 1A The location n 118 is shown as including a backup control system 168 that can partially or fully failover to maintain the runtime operation of the process control system 100 at the location n 118 when one or more remote parts of the system 100 (e.g., the transmission network 130, the computing fabric 102, etc.) are damaged, not communicating, or otherwise inoperable. For example, the backup control system 168 may include a traditional legacy control system and / or may include a backup copy or virtual twin of at least a portion of the virtual process control system 145 executed on a computing platform local to the location n 118.

[0133] Therefore, based on the above, the computing fabric 102 of the NGPCAS 100 provides process control and automation functionality and the associated functionality required to be executed by different devices and systems distributed across Purdue levels 1-5 in traditional process control systems, and also provides additional lower-level functionality available across the system (e.g., from networking and platform resource management to computing and primitives). In addition, advantageously, the NGPCAS 100 eliminates the need for DMZs at level 3.5 and other levels, and eliminates the need for firewalls, digital diodes, and other building security equipment and mechanisms used in traditional process control and automation systems, while providing a more secure system 100.

[0134] Specifically, as described above, any data or information transfer between two components of the NGPCAS 100 (e.g., two different containerized components / MEEE / particles 140, or a containerized component / MEEE / particle 140 and a physical component 125 / 135) can be achieved via a private session over a VPN (e.g., a VPN utilized by the physical locations where the computing structure 102 and the physical component 102 are located), via a private VPN utilized only by the endpoint components, and / or one or more other types of VPNs. Additionally, for security purposes, any and all users 155 / 160 may be required to access the system 100 via one or more APIs 162 / 165 and a proprietary VPN 158 / 162 established between the user 155 / 160 and the computing structure 102. Additionally, all users may be required to be multi-factor authenticated before obtaining access to the system 100 via the APIs 162 / 165. In this way, system data is only exposed to non-public addresses (e.g., the addresses of components, computing structure nodes, etc.) via the VPN and authorized and authenticated entities. Applications may be exposed as websites or services such that the computing devices utilized by users access the system 100 via a "thin" client and do not have any system-related software executed thereon (possibly except for a thin client such as a portal application). Additionally, all applications may be containerized, including applications executed locally at the physical location where the physical device is located, and any system data may be statically encrypted.

[0135] Additionally, within the NGPCAS 100, all communications transmitted and received over the network 130 may be signed and encrypted, and the use of plaintext protocols may be prohibited. Additionally, each NGPCAS 100 may have a single certification authority (e.g., which may be associated with an enterprise), and self-signed certificates and / or other forms of custom authentication may be prohibited.

[0136] Figure 1B A block diagram showing an example architecture of a next-generation process control and automation system ("NGPCAS") 100A, which has Figure 1A the basic components of the system 100, but is configured to support industrial and / or automation processes having an installed or legacy distributed control system such as a control system. In this case, the NGPCAS 100A includes Figure 1A all components of the system 100, but is connected to one or more factories or physical locations 115A and 118A where a legacy control system has been implemented. As Figure 1BAs shown, positions 115A and 118A may have a distributed controller 170, such as a DeltaV controller, which is connected to various field devices 174, such as intelligent field devices, through various input / output (I / O) devices 172. The field devices may communicate with the I / O devices 172 using any desired or typical wired or wireless communication network. The field devices 174 may be, for example, 4-20ma, Fieldbus, Profibus, Canbus, APL, or any other communication protocol-compatible field devices that communicate using any standard or known communication network or physical layer and communication protocol, including process control communication protocols (e.g., HART, fieldbus, etc.). Here, the process controller 170 may store and implement traditional control programs, which may control the field devices 174 using, for example, function blocks, control blocks, etc.

[0137] However, as Figure 1B shown, the process controller 170 may be connected to a data aggregator and VPN gateway 180 installed at or located at the physical locations or plants 115A and 118A, and the VPN gateway 180 is connected to components within the computing structure 102 via a secure VPN link 130. The VPN gateway 180 operates as a data aggregator to collect data from the process controller 170, or in another embodiment, directly from the I / O devices 172 (shown by the dashed line at position 115A) to obtain, manage, transform, aggregate, and collect data from the field devices 174. The VPN gateway 180 also operates to encrypt the collected data via the VPN or other secure and encrypted communication link 130 and provide it to other components in the computing structure 102 (which use the data to perform control or other services). In terms of position 115A, the NGPCAS 100A may simply bypass the controller 170 to obtain data from the field devices 174 and I / O devices 172 in a manner similar to that shown by the I / O interfaces 125 and 128 and the field devices 135 and 138 Figure 1A . In this case, the controller 170 may be operated and programmed as a backup control system 168, for example Figure 1A shown, such that the controller 170 at position 115A takes over the control of the field devices 174 at position 115A in the event of a failover or backup.

[0138] On the other hand, as regarding Figure 1BAs shown in the physical location 118A, the controller 170 can operate as part of the computing fabric 102 and has software modules (such as containers, etc.) associated with the computing fabric 102 stored therein and operating therein. In this case, the controller 170 (at location 118A) is part of the computing fabric 102, as shown by the computing fabric box that extends downward into the physical location 118A to include the controller 170. Figure 1B Thus, in this case, the computing fabric 102 can include cloud-based computing devices and computing devices (e.g., the controller 170) located at physical plant locations that are not within the cloud. Additionally, in this case, the controller 170 at location 118A can operate in conjunction with other computer equipment within the computing fabric 102 (such as computer equipment within a cloud environment) to perform control of the field device 174 at the physical location 118A.

[0139] In Figure 1B both of the examples, a data aggregator and VPN gateway 180 are included such that the NGPCAS described herein can connect to and use installed legacy control system hardware (such as process controllers, field devices, I / O devices, etc.), which makes it easier and cheaper to install and use the NGPCAS described herein in a factory or other physical location where control hardware is already installed. Thus, the VPN gateway 180 enables the NGPCAS system 100A described herein to be used to quickly and easily convert a standard legacy control system (such as a distributed control system) to an NGPCAS. Of course, while Figure 1B the legacy or installed control system is shown as a distributed control system, other legacy or installed control systems can be used in the same or similar manner to support the NGPCAS.

[0140] Example NGPCAS architecture including digital twin

[0141] As described above, in some specific implementations of the NGPCAS 100, the computing fabric 102 can facilitate the use of “digital twins” of one or more of the local physical devices 105, 108. Figure 2A A system 200 representing a portion of an example NGPCAS 100 is shown, where multiple local physical devices 202A - 202D communicate with respective media converters 206A - 206D via respective physical interfaces 204A - 204D. For example, in Figure 2AIn [the figure], the Foundation Fieldbus device 202A is coupled to the media converter 206A via the Foundation Fieldbus interface 204A. The media converter converts the signals received from the device 202A and the signals sent to the device between the Foundation Fieldbus protocol and an Ethernet-compatible or other suitable packet protocol. Similarly, the HART device 202B is coupled to the media converter 206B via the HART interface 204B. The media converter converts the signals received from the device 202B and the signals sent to the device between the HART protocol and an Ethernet-compatible / packet protocol. As should be understood, other transmitters, sensors, and field devices may use other protocols. For example, the devices 202C and 202D can each be 4-20mA devices, and the media converters 206C and 206D can convert the signals from 4-20mA to an Ethernet-compatible / packet protocol (e.g., by packetizing the value of the 4-20mA signal and placing it on the network).

[0142] The Ethernet connections 208A - 208D couple the media converters 206A - 206D to the computing fabric 102, respectively, and specifically to the respective digital twins 210A - 210D of the local physical devices 202A - 202D. In an embodiment, the Ethernet connections 208A - 208D can each be directly connected to the computing fabric 102 (as Figure 2A shown), or perhaps more likely, the Ethernet connections 208A - 208D can each be connected to the computing fabric 102 via one or more network switches (not shown) (in an embodiment, including via one or more APL switches (not shown) and / or one or more local gateways (e.g., gateway 148)).

[0143] As the name implies, each of the digital twins 210A - 210D is a "virtual twin" of the local physical device, device, or group of devices to which it is coupled (and which it represents). That is, each digital twin simulates the electronic functions of one or more sensors, transmitters, actuators, etc., rather than physical functions such as sensing and actuation. The digital twin can correspond to a single device (e.g., a pressure transmitter, a temperature transmitter, an actuator, etc.), can correspond to a group of devices (e.g., a valve with upstream and downstream pressure transmitters and a valve position sensor), or can correspond to a device category (e.g., a mass flow device). Figure 2B This concept is described in more detail with respect to the Foundation Fieldbus local physical device 202A. As Figure 2BAs shown, the device 202A has stored in its memory a plurality of parameters and variables 220A - 220J, which generally can be addressed and / or retrieved and / or otherwise obtained by a process control system and specifically can be used for a control algorithm that controls the device 202A. Of course, Fieldbus devices such as device 202A include one or more parameters and values from a generally known set of parameters and values, including measured values 220A, setpoint values 220B, upper and lower limits 220E, alarms 220D, one or more device states 220C, device ID 220H, device tag 220I, device description 220G, scale 220F, and / or other information 220J such as range information, status information, etc., while other types of devices may additionally or alternatively include other parameters and values, and still other devices are only capable of providing a single transmitter value (e.g., pressure, temperature, etc.). The digital twin 210A corresponding to the device 202A is implemented in the computing structure 102 (or in a non - computing structure implementation if needed) and maintains up - to - date copies of the data 220A - 220J stored in the device 202A, and these copies are Figure 2B denoted by the reference numerals 220A' - 220J' in. Additionally, the digital twin 210A writes to the device 202A any setpoint values, other relevant data, and / or other commands 220A' - 220J' that it receives.

[0144] Referring again to Figure 2A , each of the digital twins 210A - 210D is coupled via the computing structure 102 to function blocks, control modules, and other control algorithms that would typically receive data (and / or send data to) the devices 202A - 202D. For example, the AI / DI function blocks 212A - 212D can receive raw data from the digital twins 210A - 210D, and in cases where the data would normally flow to the devices 202A - 202D, the AO / DO function blocks 214A, 214B can send data to the digital twins 210A, 210B, which then transmit the data back to the physical devices 202A, 202B. The control algorithm 216 operates on the data, receiving data from and sending data to the digital twins 210A - 210D, regardless of whether the digital twins 210A - 210D are physical devices or logical devices. In this way, the final hardware (e.g., the physical devices 202A - 202D) is abstracted from the control algorithm 216 that operates the process plant via the digital twins 210A - 210D.

[0145] In the envisioned system implementing the computing fabric 102, the digital twins 210A - 210D can be implemented as microservices (or other micro - encapsulated execution environments) executing in joint or separate containers in an implementation. In one implementation, each of the digital twins 210A - 210D self - identifies within the system 100 using the unique network identifier or address of the corresponding physical device 202A - 202D that the digital twins 210A - 210D mirror. Thus, other containerized components of the computing fabric 102 can communicate with the intended physical devices 202A - 202D by using the unique identifiers of the physical devices and can remain unaware or oblivious that the entity with which they are communicating is the actual physical device 202A - 202D or its digital twin 210A - 210D. Thus, in a sense, each digital twin 210A - 210D can act as a proxy for the corresponding physical device 202A - 202D that the digital twins 210A - 210D mirror within the system 100. In additional implementations, and in a manner similar to other containerized components / MEEEs / granules 140 of the computing fabric 102, the containerized digital twins can be nested according to, for example, the area of the process plant, the type of device, the associated control module, etc. Of course, AI, AO, and control algorithm modules can be similarly executed as containerized services or microservices.

[0146] In an implementation, the digital twins 210A - 210D can be automatically created according to the descriptions of the corresponding physical devices 202A - 202D that they represent.

[0147] Using the digital twin scheme as described herein and Figure 2A and Figure 2B shown can realize multiple advantages. One advantage is that the digital twins 210A - 210D can be programmatically configured to prevent abnormal conditions in the process plant that might otherwise be caused by minor faults in the physical devices 202A - 202D. For example, if a measurement value in a physical device becomes unreliable, the digital twins 210A - 210D can maintain the most recent value of the measurement (or provide an expected or simulated value) to maintain the stable and safe operation of the process plant, even in the absence of the actual measurement value provided by the physical devices 202A - 202D. For the same reason, a device (especially a transmitter) that has failed, needs maintenance, or needs calibration can be replaced, repaired, or calibrated without necessarily shutting down the entire process, because the control algorithm 216 will not know that the device is absent or not sending accurate (or any) data.

[0148] Another potential advantage of using digital twins is their ability to assist in debugging the systems described herein with less effort, cost, and time. By way of example and not limitation, a new plant (or portion thereof) identical to an existing plant (or portion thereof) can be instantiated almost entirely within a computing fabric to which physical devices 202A - 202D are coupled via Ethernet. If the system except for physical devices 105, 108 is instantiated within computing fabric 102, the entire process control plant (or at least the elements within computing fabric 102) can be instantiated within minutes, and automatic discovery (e.g., using device tags, including hard - coded device tags) can determine which devices are connected to the various containerized applications, containerized services, microservices, MEEE, or particles instantiated within computing fabric 102.

[0149] Yet another advantage of adopting digital twins is that digital twins that are either directly or not directly connected to a control algorithm (i.e., whether the control algorithm interfaces with the digital twin or directly with physical devices in the process plant (e.g., 202A - 202D)) can be used to generate predictions about the future state of the process and / or physical devices. These future predictions can be generated using statistical models, mechanical models, or a combination of statistical and mechanical models. These models executed within the digital twin (e.g., as nested containerized components / MEEE / particles) can receive data from physical devices and control algorithms and provide an assessment of the control system (e.g., a control system tending towards an abnormal state), field devices (e.g., sensors that may appear to be failing or have failed), etc. This information can then be used to provide recommended mitigation or remedial actions to an operator, maintenance personnel, or others.

[0150] Another advantage conferred by using digital twins is the introduction of new soft - sensor data sources. Just as a group of physical devices (e.g., upstream and downstream sensors and valve - position sensors) can be represented by a single digital twin of a valve embodying these three elements, a group of measurements (collected by the corresponding physical devices) can be collected by the digital twin and used as a "soft sensor" giving an indirect measurement of another value. For example, the digital twin can receive values from four transmitters, namely two pressure transmitters that together provide a differential - pressure measurement, a pressure transmitter, and a temperature transmitter, and combine these values into a soft - sensor measurement of mass flow.

[0151] In addition, digital twins as described above can also be implemented in a traditional process - plant environment. For example, a local computing device can instantiate digital twins of the various physical devices in a process plant, even if the process plant implements traditional I / O and controllers. One such exemplary arrangement is shown in Figure 2C in.

[0152] Example multi-enterprise NGPCAS architecture

[0153] The Next Generation Process Control and Automation System (NGPCAS) 100 described in the previous part of the present disclosure provides many enterprise-level benefits for any particular enterprise that utilizes one or more NGPCAS 100s to implement industrial and / or automation processes. Examples of such benefits will be discussed herein with respect to Figure 3A and Figure 3B discussed.

[0154] Figure 3A Illustrates a logical arrangement of an example multi-enterprise framework 300 that includes different enterprises 302, 304. Each enterprise 302, 304 utilizes its respective NGPCAS to implement industrial or automation processes (or, in some cases, multiple different industrial and / or automation processes) across physical device locations 312 / 314 and 316 / 318. In one implementation, the respective NGPCASs of enterprises 302, 304 can be respective instances of NGPCAS 100, each instance being specially configured for enterprises 302, 304. Thus, the present disclosure will interchangeably refer to enterprises 302, 304 as "enterprise NGPCAS 302, 304" or simply "NGPCAS 302, 304". NGPCAS 302, 304 respectively include enterprise-level computing structure functionality 320.1-320.2, which consists of containerized applications and / or services that operate in the respective computing structures of NGPCAS 302, 304 to control process equipment and provide other process functionality to serve the processes implemented via NGPCAS 302, 304 (e.g., operation, maintenance, diagnosis, monitoring, etc.). For example, at least some of the functionality in enterprise-level computing structure functionality 320.1-320.2 can be provided by architecture provider / manager 161 via subscription, download from an application or service store, etc. Enterprise-level computing structure functionality 320.1, 320.2 can be executed, for example, in the manner described with respect to Figure 1A the containerized components / MEEE / granules 140.

[0155] In some implementations, the computing structure functionality 320.1, 320.2 is executed in different parts of a shared computing structure (e.g., at least some computing structure nodes are shared between enterprises 302, 304), where the security for the computing structure functionality 320.1, 320.2 is fixed to the respective enterprises 302, 304 using the security mechanisms of the present disclosure (e.g., even if the components of the computing structure functionality 320.1, 320.2 execute on the same computing structure node, such components operate as separate containerized components, where security and access are independently managed for each separate containerized component). At least a portion of the computing structure functionality 320.1, 320.2 can be provided by authenticated users / computing devices associated with the respective enterprises 302, 304 (e.g., Figure 1Aby human or automated user 155 and / or architecture provider / manager 161) for access and operation.

[0156] Example Enterprise Computing Functionality

[0157] Figure 3B illustrates example enterprise-level computing structure functionality 320 that can be included in computing structure functionality 320.1, 320.2 implemented by enterprises 302, 304 representative of Figure 3A The computing structure functionality 320 includes real-time process monitoring functionality ( Figure 3B 332 in ) across multiple NGPCASs of a single enterprise. Any one of enterprises 302, 304 can actually implement two, three, four, or more NGPCASs, each of which can operate across a corresponding set of one, two, three, four, or more physical device locations. Since the location for monitoring processes in the NGPCASs is not limited to the physical device locations where the processes are physically executed, a single user at a single computing device can perform remote monitoring of processes across two, across two, three, four, or more NGPCASs (and / or across multiple physical device locations associated with each NGPCAS). For example, a single enterprise can operate multiple NGPCASs, which typically involves the operation of a specific type of boiler unit. A technician or operator familiar with the operation of the boiler unit can monitor the runtime operation of the boiler unit across multiple NGPCASs by receiving, via the computing structure, process information (such as device identifiers, device configuration information, process measurements, process setpoints, warnings, etc.) associated with the operation of each boiler unit included in the multiple NGPCASs at the technician's computing device. A certain degree of authorization can be provided to the technician (and / or the technician's computing device) to view, obtain, and act on the monitored process information (such as to send process commands, implement configuration changes, and / or provide other responses) to handle the operation of the boiler unit across multiple NGPCASs. Similar monitoring functionality can be provided for configuration engineers, operators, supply chain managers, and / or other persons authorized to monitor at least a portion of the operation of each NGPCAS among multiple NGPCASs.

[0158] Similarly, the NGPCAS architecture of the present disclosure enables real-time monitoring (334) and operational functionality (336) of the NGPCAS to be performed from multiple physical locations. That is, just as one operator or technician can remotely monitor the operation of multiple NGPCAS, various personnel at different physical locations can remotely monitor the operation of a single NGPCAS (or a single physical device location). In an embodiment, an operator or technician at an operator workstation located at a first, second, third, etc. physical device location or even at other locations not associated with any physical device location can monitor and perform operations associated with the runtime of an industrial process portion (e.g., equipment, equipment group, control loop, etc.) performed at different locations in the first, second, third, etc. physical device location. The workstation may be located at any physical location, such as at the physical device location where the monitored / operated process is performed, at different physical device locations, at a dedicated operation center, at a home office, in a vehicle, etc., and the workstation may be a fixed or mobile device. An operator or technician may, for example, receive various information associated with the operation of the process (e.g., equipment configuration information, operator displays, process status information, equipment status information and operating parameters, process measurements, set points, alarms, and / or other information) via a computing structure at an operator workstation. Figure 1A Components 135, 138 associated with the components) to monitor the runtime operation of the industrial process. The operator or technician can then modify or adjust various aspects of the operation of the process by sending commands from the workstation to modify various aspects of the process (for example, to advance steps in the process or modify control loops in the process, where the control loops themselves are potentially implemented in the form of containerized components at the same or different locations via computing structures). In addition, authorization to monitor any specific function of the NGPCAS (for example, monitoring a specific industrial process or part thereof, physical equipment location, equipment, equipment group, etc.) can be transferred on demand (for example, at the request of a user and / or another containerized component) or automatically between personnel located in various physical locations, and the physical location is not geographically limited to the physical location of the monitored function of the NGPCAS. For example, in some embodiments, authorization to monitor the operation of the NGPCAS or part thereof can be transferred between personnel when personnel change shifts, where the personnel who hand over monitoring access rights are not necessarily located in the same physical location as each other or are not necessarily located at the monitored NGPCAS or part thereof. This ability to transfer authorization for monitoring operations between physical locations can enable functionality for actively monitoring runtime process operations to "follow the sun," for example by moving monitoring of operations of an industrial process (or portions thereof) between multiple locations around the world over the course of a day, such that each respective location has monitoring and operating responsibilities during daylight hours at the respective location.

[0159] The NGPCAS architecture of the present disclosure also enables the control of the NGPCAS process or portions thereof (e.g., devices, device groups, control loops, etc.) (340) from any physical location. The configuration and execution of control loops can be implemented as containerized components in a location-agnostic NGPCAS computing fabric, without the need for local implementation at the physical device location of the controlled operation as in traditional process control architectures. Portions of the control system can be distributed among containerized components executing at the same physical device location, different physical device locations, and / or other physical locations not associated with the physical implementation of the process.

[0160] In fact, any containerized component in the computing fabric (e.g., containerized services and applications) can execute (338) at any physical location (e.g., at the physical device location to which the containerized component belongs, at a different physical device location, and / or at another physical location independent of any physical device implementing at least a portion of the process). Similarly, containerized components in the computing fabric can be instantiated from any physical location (342). A containerized component can be instantiated, for example, via a human and / or automated operation at a first physical location, while the instantiated containerized component runs or executes on a computing node (of the computing fabric) located at a second physical location. Additionally, the execution of a containerized component can be transferred between various physical locations on demand or automatically (344, e.g., via Figure 4 an orchestration service 422). In some embodiments, the containerized components of NGPCAS move globally across various physical locations to place the execution of the containerized components adjacent to the monitoring / control / operation workstations serving NGPCAS at any given time (e.g., to "follow the sun" by executing the containerized components at the respective locations during daytime hours at each location). For example, a containerized component can be moved to execute multiple times at different physical locations each day to "follow the sun," such that it executes adjacent to the personnel providing daytime services to NGPCAS at any given time. Containerized components can also be moved between computing fabric nodes and / or physical locations for load management purposes, e.g., to avoid overloading the processing capacity of any particular computing fabric node or the communication bandwidth of any particular communication link in the computing fabric. Additionally, in the event of a failure of a computing fabric node or a portion thereof in the computing fabric, the execution of the containerized component can be moved, for example, by activating a digital twin instance of the containerized component that operates on a different computing fabric node and / or at a different physical location.

[0161] NGPCAS can provide access to specific containerized applications / services on a per-application or per-service basis ("à la carte", 348). In other words, an enterprise (e.g., one or more agents of the enterprise) can individually select specific monitoring applications, operation applications, control applications, dashboard applications, control modules, diagnostic applications, and / or other process functionality to be implemented in the enterprise's NGPCAS to support the operation of the process. Instances of containerized components that implement the selected functionality can be instantiated and executed on demand or as needed to support the scale of operations required by the enterprise NGPCAS.

[0162] In some embodiments, the architecture provider / manager (e.g., Figure 1A 161 in

[0163] See again Figure 3A , according to the NGPCAS architecture, the multi-enterprise framework 300 enables the architecture provider / manager (e.g., Figure 1A 161 in to perform centralized management of upgrades (350) of applications / services utilized by enterprise NGPCASs 302, 304. Upgrades of applications / services are reflected in new instances of the applications / services executed in enterprise NGPCASs 302, 304, thus allowing each enterprise 302, 304 to automatically access the latest version of any process functionality provided to enterprises 302, 304. In some embodiments, the architecture provider / manager (e.g., 161 in [reference] provides subscription-based access rights to process functionality (346), whereby an enterprise purchases specific process functionality at a price determined, for example, by the quantity of the purchased functionality, the number of instances of the purchased functionality running in the enterprise's NGPCAS computing fabric, and / or the length of time the purchased process functionality operates in the enterprise's NGPCAS computing fabric. A third party can similarly provide subscription-based or one-time purchase-based access rights to process functionality, thereby allowing a first enterprise, for example, to generate process functionality and distribute it to another or more enterprises to allow the other or more enterprises to run instances of the same process functionality via the containerized and physical components of their respective NGPCASs for their own respective use. To support the subscription-based and one-time purchase-based distribution of process functionality, the architecture provider / manager can provide an application / service "store" that includes a library of various process applications and / or services available for enterprises to purchase (i.e., one-time purchase or subscription) for their own respective use. Additionally, in some embodiments, the architecture provider / manager implements virtualization testing and simulation of any library of applications / services on the enterprise NGPCAS to ensure that the purchased applications / services will run securely, appropriately, and effectively on the enterprise NGPCAS before actual implementation in the context of the enterprise's own process architecture.

[0164] In addition to providing centralized management of application / service upgrades, the architecture provider / manager in the multi-enterprise framework 300 (e.g., Figure 1A 161) can provide a central monitoring point (352) for the operation of the computing fabric of enterprise NGPCAS 302 and / or 304. The architecture provider / manager can monitor NGPCAS operations, for example, to implement fault handling or fault protection measures, perform load balancing of NGPCAS functionality, and / or identify performance improvements for the same NGPCAS 302, 304 and / or for different NGPCASs of other enterprises.

[0165] Other enterprise-level benefits of the NGPCAS architecture of the present disclosure will be recognized from other parts of this specification.

[0166] Example computing structure architecture

[0167] Relative to Figure 1A the computing fabric 102 of the next-generation process control and automation system 100, Figure 4 FIG. shows a block diagram of an example architecture 400 of the computing fabric 102. Of course, the example architecture 400 can be utilized in the computing fabric and / or in process control and automation systems other than the computing fabric 102 of NGPCAS 100. However, for the sake of discussion herein and not for purposes of limitation, the architecture 400 is described below with reference to Figure 1A simultaneously. Additionally, for ease of reading, the architecture 400 of the computing fabric 102 may be referred to interchangeably herein as the "computing fabric architecture 400" or simply as the "computing fabric 400".

[0168] Generally speaking, and as described below, the computing fabric 400 utilizes a layered architecture, where the business logic of the computing fabric 400 is abstracted from the physical computing platform of the computing fabric 400. For example, the computing fabric 400 can utilize one or more techniques and / or features described in U.S. Patent Application No. 17 / 487,609, filed on September 28, 2021, entitled "Software Defined Process Control System and Methods for Industrial Process Plants", the disclosure of which is incorporated herein by reference in its entirety. For the sake of discussion herein, the computing fabric 400 is described with reference to Figure 1A the system 100 simultaneously; however, this is for illustrative purposes only and not limiting.

[0169] As Figure 4As shown, the computing fabric 400 is communicatively coupled to the field environment 120 via one or more networks 402. For example, in an implementation where the computing fabric 102 of the NGPCAS 100 utilizes the computing fabric architecture 400, one or more networks 402 may be included in Figure 1A the network 130. The network 402 generally includes high-bandwidth data or communication links that support packet delivery to and from the computing fabric 400, and may include one or more wired and / or wireless networks, which may include public networks (such as the Internet, public Wi-Fi networks, cellular networks, etc.) and / or private networks. At least a portion of one or more networks 402 may include an Advanced Physical Layer (APL) or some other type of physical or other protocol layer that supports Ethernet and / or other packet-based protocols.

[0170] The physical layer of the computing fabric

[0171] As Figure 4 further shown, an example architecture of the computing fabric 400 includes a computing platform 405 that supports the higher-level hardware and software resources of the computing fabric 400. Thus, the computing platform 405 may be interchangeably referred to herein as the "physical layer 405" of the computing fabric 400 because it includes physical processors, processor cores, memory, and network interfaces. The computing platform or physical layer 405 of the computing fabric 400 includes a set of data center clusters C1, C2, …, Cn (which are generally referred to herein as data center clusters Cx for readability purposes), each data center cluster including a corresponding plurality of computing fabric nodes N1, N2, …, Nn (which are generally referred to herein as nodes Ny for readability purposes), where the corresponding nodes Ny included within each data center cluster Cx may be at least partially (if not fully) interconnected. Each different cluster C1, C2, …, Cn may include a different total number of nodes N1, N2, …, Nn. Each node Ny of each data center cluster Cx includes one or more corresponding processors and / or processor cores, one or more corresponding memories, and corresponding network resources, such as one or more corresponding physical communication interfaces that communicatively couple the node Ny to one or more other nodes Ny of the data cluster Cx. For example, the node Ny may be implemented on a single server or may be implemented on a group or cluster of servers.

[0172] Each cluster Cx includes a plurality of nodes Ny that are communicatively interconnected with each other. Additionally, different clusters Cx may be physically located at the same or different physical locations (e.g., at different locations 115, 118 of the physical devices 105, 108 of the NGPCAS 100, and / or at one or more other locations where the physical devices of the system 100 are not provided). A particular cluster Cx may be implemented at only a single physical location or across multiple physical locations. Additionally, each data center cluster C1, C2, …, Cn is communicatively connected or networked with one or more of the other data center clusters C1, C2, …, Cn of the computing platform 405.

[0173] Note that although the physical layer 405 associated with the computing fabric 400 has been described above as being implemented by using the physical data center clusters C1 - Cn, in some embodiments, at least a portion of the physical layer 405 may be implemented as a virtualized physical layer 405. For example, the data center clusters C1 - Cn (or a subset thereof) may be implemented as virtual machines, such as those that execute on a computing resource platform such as a cloud computing system.

[0174] Software-defined Networking Layer of the Compute Fabric

[0175] An example architecture of the computing fabric 400 also includes a software-defined (SD) network layer 410 that interfaces the physical layer 405 of the computing fabric 400 with the software-defined application layer 412 of the computing fabric 400. Thus, the software-defined network layer 410 may be interchangeably referred to herein as the "operating system (OS) 410" of the computing fabric 400. Generally, the OS 410 of the computing fabric 400 may assign, designate, or allocate various computing fabric nodes Ny to perform corresponding roles or functions in support of the computing fabric 400, such as computing (e.g., via the respective processors and / or processing cores of the nodes) or data storage (e.g., via the respective memories of the nodes). The computing fabric nodes Ny that are assigned, designated, or allocated to perform the computing activities of the computing fabric 400 are referred to herein as "compute nodes" or "computing nodes", respectively. Similarly, the computing fabric nodes Ny that are assigned, designated, or allocated to perform the storage activities of the computing fabric 400 are referred to herein as "storage nodes", respectively. A single node Ny may be used as only a compute node, only a storage node, or both a compute node and a storage node, and the role of each single node Ny may change dynamically over time, e.g., as directed by the OS 410. Advantageously, the computing platform 405 is scalable such that individual nodes Ny and / or individual clusters Cx can be easily added, removed, swapped out, etc. as needed to support the computing fabric 400, and specifically in accordance with other higher-level requirements of the computing fabric 400. For example, different nodes Ny of the computing fabric 400 may be assigned and reassigned to different clusters Cx, and / or different nodes Ny and / or different clusters Cx may be physically located at different physical locations 115, 118 of the NGPCAS 100 as needed.

[0176] The operating system 410 of the computing fabric 400 executes on the computing platform 405 and, in one embodiment, may be built upon any suitable general-purpose hyper-converged infrastructure (HCI) operating system (OS), such as Microsoft AzureStack, VMWare HCI, Nutanix AOS, Kubernetes Orchestration, including Linux Containers (LXC / LXD), Docker Containers, Kata Containers, etc. Thus, the OS 410 provides a set of compute, storage, and networking support services in a manner somewhat similar to a general-purpose HCI operating system. However, contrary to a general-purpose HCI OS and advantageously, in the computing fabric 400 of the next-generation process control and automation system 100, the OS support services respond dynamically to the logical or abstract process control or automation system and other software components provided by the software-defined application layer 412 of the computing fabric 400. That is, as the performance, resource requirements, and configuration of the various application layer services, subsystems, and other software components of the application layer 412 change dynamically (and / or are dynamically predicted to change by the services within the application layer 412), the operating system 410 can automatically and responsively adjust and / or manage the use of the hardware and / or software resources of the physical layer 405 to support the needs and requirements of the application layer 412 for compute, storage, and networking and for other functionality related to industrial process control and automation. To this end, the computing fabric operating system 410 may include a set of support services, including, for example, software-defined (SD) compute services 415, SD storage services 418, SD networking services 420, SD orchestration services 422 (also interchangeably referred to herein as "orchestrator 422"), and optionally one or more other process control and / or automation-specific SD OS support services and / or functions 425. For example, the process control and / or automation-specific SD OS support services and / or functions 425 may include computing fabric individual resource and / or resource group management services that manage the individual resources and / or resource groupings provided by the software-defined network layer 410 and / or by the physical layer 405 of the computing fabric 400, such as virtual machines, containers, networks, network security groups, clusters, servers, etc.Thus, in one embodiment, the operating system 410 of the computing fabric 400 includes a general HCI operating system platform (e.g., Microsoft Azure Stack, VMWare HCI, etc.) that has been specifically customized to include SD computing services 415, SD storage services 418, SD networking services 420, SD orchestration services 422, and other process control and / or automation SDOS support services and / or functions 425, wherein the set of SD support services 415 - 425 automatically responds to and specifically supports the application layer software components 412 of the computing fabric 400, and the application layer software components include process control and / or automation specific applications and services as previously discussed.

[0177] The interface between the software-defined network layer and the application layer of the computing fabric

[0178] Specifically, when the computing fabric operating system 410 manages the allocation of hardware and software resources of node Ny of the computing platform 405 via the SD OS support services 415 - 425, the SD OS support services 415 - 425 also serve as interface services between the OS 410 and higher-level services, subsystems, and other software components of the application layer 412 of the computing fabric 400, and / or may provide a framework for these higher-level services, subsystems, and other software components of the application layer 412. Thus, the software components of the computing fabric application layer 412 can interface with the OS 410 (and in some cases, specifically with one or more of the SD-specific support services 415, 418, 420, 422, 425 provided by the OS 410) via a set of application programming interfaces (APIs) 430, via an HCI adapter 430 (also referred to herein as the "HCI adapter layer" 428) and another set of APIs 432, or directly ( Figure 4 not shown in the figure). The HCI adapter layer 430 enables the computing fabric application layer 412 to access the SD OS support services 415, 418, 420, 422, 425 while remaining agnostic to the details of the general HCI operating system (e.g., Microsoft Azure Stack, VMWare HCI, etc.) that has been customized with such SD-specific services 415 - 425 to form the OS 410. Thus, the HCI adapter 430 converts or translates the APIs 428 utilized by the computing fabric application layer 412 into a set of APIs 432 that are understood by, otherwise known to, or compatible with the customized or adapted general HC operating system 410 of the computing fabric 400.

[0179] Thus, unlike a general hierarchical IT (Information Technology) system architecture in which business logic applications are abstracted from hardware and software computing platforms and the management of computing platform resources is mainly managed and designed by human IT administrators, the architecture of computing structure 400 not only abstracts higher-level business logic services, subsystems, and other software components of application layer 412 from hardware and software computing platform 405, but also enables higher-level software-defined services, subsystems, and other software components 412 to dynamically, automatically, and responsive lead and cause changes in the use of hardware and software resources of nodes Ny and clusters Cx of physical layer 405 and software-defined network layer 410, for example, via API 428 and SD OS support services 415, 418, 420, 422, 425, without any manual intervention or guidance. Specifically and advantageously, the management of resources of physical layer 405 and software-defined network layer 410 responds dynamically to changes in the configuration and requirements of these higher-level SD services, subsystems, and other software components of application layer 412, and specifically, with respect to the specific requirements, boundaries, and limitations of industrial process control and automation systems, such as timing, synchronization, and / or other control or automation-specific constraints.

[0180] Containers and other types of micro-encapsulated execution environments

[0181] As Figure 4 shown, industrial process control, automation, and other associated business logic are performed by higher-level software-defined services, subsystems, and other software components 435 - 448 provided by application layer 412. For ease of reading in this document, the present disclosure classifies and interchangeably refers to these higher-level SD services, subsystems, and other software components 435 - 448 as "software-defined application layer components" or "application layer software components" of computing structure 400. In one embodiment, a set of software-defined application layer components 435 - 442 (and optionally at least some third-party services 448 executed at application layer 412) may together form a logical process control or automation system 445 (also interchangeably referred to herein as a "virtual" process control or automation system 445), which combines with physical components 135, 138 of NGPCAS 100 to execute to control an industrial (e.g., process control or automation) process. For example, Figure 1A the logical process control or automation system 145 may include Figure 4 the logical process control system 445. Generally speaking, application layer software components may be provided by an enterprise (e.g., via architecture provider / manager 160), a user 155 acting as an agent of or associated with enterprise 155, a third party, and / or other sources.

[0182] The application layer software components 435-448 of the application layer 412 can execute in a container and / or in other suitable types of micro-encapsulated execution environments (MEEEs) or particles, such as an instantiated software component (ISC). For example, an ISC can be a container configured with an instance of a specific application layer software component 435-448 to form a configuration container, container image, or other type of micro-encapsulated execution environment or particle for the specific application layer software component 435-448, and the container image of the specific application layer software component 435-448 can be instantiated to execute as a specific instantiated MEEE or ISC on a specific computing fabric node Ny. In other words, a configuration container can be an instance of the application layer software components 435-448 configured into a corresponding container or other type of micro-encapsulated execution environment or particle.

[0183] Generally, containerized or micro-encapsulated software components or MEEEs / particles (e.g., at the application layer 412, HCI adapter layer 430, and software-defined network layer 410) are included in the set of containerized / micro-encapsulated components 140 of the NGPCAS 100 and are thus isolated from other containerized / micro-encapsulated services and applications (e.g., other containerized / micro-encapsulated components 140) executing on the same node Ny. Accordingly, the terms "configuration container," "container image," and "containerized component" are used interchangeably herein and, for ease of discussion and not for purposes of limitation, are generally and generically used herein to refer to any one or more suitable types of instantiated micro-encapsulated execution environments or particles, such as software containers, virtual machines, software agents, scripts, functions, invocations, roles (e.g., lightweight processes such as Erlang, Scala, Akka, etc.), unikernels (e.g., a machine image that runs on bare metal and includes all components necessary to execute an application, including operating system components), other types of bare metal software (e.g., software that runs directly on hardware without any intermediate management software such as a hypervisor or other type of container / encapsulation manager), and / or other types of micro-encapsulated execution environments or particles.

[0184] Various MEEEs or particles can be configured to perform (e.g., when instantiated) various operations ranging from broad to detailed within the NGPCAS 100. For illustrative purposes using examples, a control routine can include multiple control modules that operate cooperatively to perform the control routine, the control modules can each include multiple functional blocks and other types of blocks that operate cooperatively to implement the control module, and the functional blocks can each include multiple particle operations that operate cooperatively to perform the functional block. Thus, in one specific implementation of this example, a single MEEE can be configured to perform (e.g., when instantiated) the entire control routine. In another specific implementation of this example, each MEEE in a group of MEEEs can be respectively configured to perform (e.g., when instantiated) a different control module or a portion of the control routine, and the group of instantiated MEEEs can operate cooperatively so as to perform the control routine as a whole group. In fact, in some specific implementations, a second group of MEEEs can be respectively configured to perform (e.g., when instantiated) different particle operations or portions of control modules (such as input functional blocks, error detection functional blocks, control functional blocks, logic functional blocks, scripts, output functional blocks, etc.), and the second group of MEEEs can operate cooperatively when instantiated so as to perform the control module as a whole group. In other specific implementations, a single MEEE can be configured to perform (e.g., when instantiated) as a process controller, a process control subsystem, a unit, a zone, or even the entire process control system 445.

[0185] In another example, a single MEEE can be configured to perform (e.g., when instantiated) the entire complex data analysis routine for the entire NGPCAS 100. Alternatively, each MEEE in a group of MEEEs can be respectively configured to perform (e.g., when instantiated) different simple data analysis routines (or some other corresponding portions of the complex data analysis routine), and the cooperative execution of the group of instantiated MEEEs can thus result in the execution of the entire complex data analysis routine. In some specific implementations, another group of MEEEs can cooperatively perform the corresponding particle actions or operations of the simple data analysis routine (or other types of corresponding particle actions of the simple data analysis routine) when instantiated, thus resulting in the execution of the entire simple analysis routine (or the entire portion of the complex data analysis routine, as the case may be). For example, the particle analysis actions or operations can include computational functions (e.g., data aggregation and / or manipulation, such as mean, maximum, minimum, etc.), the simple data analysis routine can include more complex statistical calculations or algorithms (e.g., principal component analysis (PCA), partial least squares (PLS) prediction, and other types of statistical calculations and / or analysis), and the complex data analysis routine can include a combination of statistical calculations or algorithms and, in some cases, combined with other types of non-statistical calculations or algorithms.

[0186] Generally, the MEEEs, particles, or provisioning containers can be provided by an enterprise (e.g., via an infrastructure provider / manager 160, via an application / service store, out-of-the-box, etc.), a user 155 acting as an agent of or associated with the enterprise 155, a third party, and / or other sources. Various instantiated MEEEs can be assigned to execute on various computing nodes Ny of the system 400, which can be located in different physical and / or geographical locations. Additionally, an instantiated MEEE can be dynamically migrated from executing at one node to executing at another node, for example, based on detected and / or predicted resource usage, jurisdictional requirements and / or regulations, and / or other criteria. Further, an instantiated MEEE can be allocated, pinned, dynamically assigned, and / or dynamically migrated, for example, via the SD computing service 415 to execute on the corresponding nodes Ny and / or data center clusters Cx. The SD computing service 415 can dynamically change, update, maintain, and / or otherwise manage the container image and its corresponding assignment to the computing nodes Ny as needed or when needed, for example, for load balancing across the computing nodes Ny, for scheduling maintenance of the computing nodes Ny and / or their physical components, in response to detected and / or predicted resource usage and / or performance issues, to support the scaling out or in of the logic process control or automation system 445, to support the scaling out or in of the computing platform 405, based on jurisdictional regulations and / or requirements, etc. Thus, the NGPCAS 100 can be considered a dynamic, highly distributed collection of MEEEs or a dynamic grid of MEEEs, where the MEEEs can be located or provisioned across multiple physical and / or geographical locations, and where one or more MEEEs can be dynamically reassigned and migrated to another node and / or another physical and / or geographical location during the runtime operation of the NGPCAS 100 while maintaining the execution of the runtime operation of the NGPCAS 100. Additionally, the components forming the MEEE dynamic grid for a particular application, control routine, analysis routine, etc. can be individually, in sets or groups, or together (if needed) dynamically moved or migrated or reassigned to other hardware in the computing fabric without affecting or interrupting the operation of the application, routine, etc. Thus, the individual components of the MEEE dynamic grid for a particular application or use can be managed separately in the computing fabric from other components of the same application or use.

[0187] Within the computing fabric 400, some configuration containers, granules, or instantiated MEEEs may be allocated or assigned by the SD computing service 415 to the respective computing nodes Ny based on the dynamically changing configuration, performance, and requirements of the logic process control or automation system 445 and dynamically reassigned to different computing nodes Ny. In some cases, a configuration container may be assigned (and reassigned) to be executed by a specific processor or a specific processor core of the SD computing node Ny. However, some configuration containers may be fixed to the respective SD computing nodes Ny (e.g., by the SD computing service 415, by configuration, by the user, etc.) and not be dynamically reassigned by the SD computing service 415 due to dynamically occurring conditions. That is, a fixed configuration container may be executed on the computing node Ny to which the configuration container is fixed until the configuration container is unfixed from the computing node Ny, e.g., regardless of the dynamic conditions of the logic process control or automation system 445 (possibly except for the failure of the computing node Ny to which the configuration container is fixed). In other words, the software-defined network layer 410 may restrict the utilization of a fixed configuration container to only the hardware and / or software resources to which it is fixed, and when the configuration container is unfixed, the SD network layer 410 removes this restriction. If desired, a configuration container may additionally or alternatively be fixed to other physical or logical components of the computing fabric 400. For example, a configuration container may be fixed to another configuration container, a specific data cluster, a specific processing resource (e.g., a specific physical processor or a specific physical processor core of the computing node Ny), a physical rack or a portion of a physical rack served by a specific power supply (where the physical rack physically houses the hardware of one or more computing fabric nodes), etc.

[0188] In addition, configuration containers, instantiated MEEEs, or particles can be nested within other configuration containers and / or attached to other configuration containers, which is particularly useful in configuring and organizing a logic process control or automation system 445. For example, when a specific process control subsystem 438 provides a specific set of control services 435 and / or other services 440, the configuration containers for each of the provided services 435, 440 in that specific set can be nested within the configuration container of that specific process control subsystem 438. As another example, multiple control routine and / or control module configuration containers can be nested within a specific controller service 435, and the specific controller service 435 can be nested within a specific process control subsystem 438. As yet another example, a controller or control service 435 can be configured with one or more process control module services 435, parameters, and values (such as input and output tags, reference values, etc.) of an industrial process plant 10 to form a configured or programmed controller service. The controller or control service 435 can be functionally equivalent to a traditional dedicated hardware controller device as understood in the Purdue model, or the controller service 435 can be functionally equivalent to a control routine or control module configured into and executed by a traditional dedicated hardware controller device. A container can be configured with an instance of a configured controller service to form a container image or instance of the configured controller service, which, when so configured, can execute, for example, by using configuration control module containers, tags, reference values, etc., to perform a specific set of configured process control logic. Multiple instances or container images of the configured controller service (or other configured applications and services) can be instantiated and executed by a computing structure 400.

[0189] As yet another example, containers, particles, or instantiated MEEEs within the SD application layer 412 can be used to represent and / or logically organize the physical and / or logical areas, regions, and components of an NGPCAS 100. For example, cells, regions, etc. can be represented by corresponding configuration containers, and the configuration containers for the physical and / or logical components corresponding to each cell, region, etc. can be nested within their respective configuration organization containers and / or attached to their respective configuration organization containers. Thus, within a computing structure 400, a configured control routine container can be nested within or attached to a configured controller container, and the configured controller container can be nested within or attached to another configuration container, such as a container that has been configured for a depropanizer tower.

[0190] For the sake of clarity and for ease of discussion herein, the term "container" is used herein generally to refer to an instantiated software component (ISC) that is a configured container, container image, containerized component, or other type of micro-encapsulated execution environment (MEEE) or granule, such as a container or other type of micro-encapsulated execution environment that has been configured to include an instance of a corresponding controller service, subsystem, or other service or application provided by the application layer 412 of the computing fabric 400.

[0191] In any case, and in a manner similar to that discussed for the computing resources of the computing platform 405, the containerized / micro-encapsulated components 140 of the system 100 can be dynamically allocated and / or assigned, pinned and / or nested to various computing fabric storage nodes Ny, for example via the SD storage service 418, to support the various storage requirements of the logic process control or automation system 445. For example, the SD storage service 418 can oversee and manage the logical storage resources utilized by the configured containers of the logic process control or automation system 445 across the various physical hardware memory resources of one or more nodes Ny. For example, the configured containers and the memory required for their operation (e.g., random access memory, etc.) can be stored on a particular SD storage node Ny or on a particular memory device or space of the SD storage node Ny. Additionally, if needed, some of the containerized components / MEEEs / granules 140 can be pinned to the corresponding SD storage nodes Ny and / or pinned to a particular memory device or memory region of the SD storage node Ny. The SD storage service 418 can alter, update, or otherwise manage one or more physical hardware memories of the computing platform 405 to support the logical storage resources of the computing fabric 400 when needed and as required, such as due to disk or other types of errors, for scheduling maintenance, due to the addition / expansion of available physical memory in the computing platform 405, etc.

[0192] Similarly, the SD networking service 420 can supervise and manage the logical or virtual network utilized by the containerized components / MEEE / particles 140 of the logical process control or automation system 445 and / or by other containerized components / MEEE / particles 140, which can be achieved by the SD networking service 420 across the computing fabric nodes Ny. For example, the SD networking service 420 can supervise and manage the networking and hardware resources of the computing platform 405 to support the logical network functionality included in the logical process control system 445, such as virtual interfaces, virtual switches, virtual private networks, virtual firewall rules, etc., and support the required networking between various configuration containers or container images executed on the computing fabric 400. In addition, when the logical process control system 445 serves the physical components 135, 138 of the NGPCAS 100, the timing and synchronization of the containerized components / MEEE / particles 140 of the computing fabric 400, the physical components 135, 138 of the field environment 120, and the networking between them are crucial, because missed and / or lost messages or communications may cause the industrial or physical process to become uncontrolled, which in turn may lead to catastrophic consequences, such as spills, gas leaks, explosions, equipment loss, and in some cases loss of human life. Fortunately, the SD networking service 420 responds to the critical process I / O timing and synchronization of the computing fabric 400, enabling communications (and specifically, communications to / from the control service 435) to be reliably delivered in a timely and deterministic manner. For example, the SD networking service 420 can support time synchronization within 1 millisecond for the data center cluster Cx to ensure the required synchronization between the process control service 435, the process control subsystem 438, the packet router / switch service 442, and other software-defined services 440, 448 of the software-defined application layer 412.

[0193] In addition to the SD compute service 415, the SD storage service 418, and the SD networking service 420, the computing fabric operating system 410 can also provide other OS support services 425 that can be accessed via a set of APIs 428, 432 and can be utilized or accessed by the application layer 412 to support the logical process control system 445 and other containerized components / MEEE / particles 140 of the application layer 412 of the computing fabric 400. For example, the other OS services 425 can include life cycle management services, discovery services, security services, encryptor services, certificate authority subsystem services, key management services, authentication services, time synchronization services, resource and / or resource group management services, service location services, and / or console support services (none of which are shown in Figure 4 ), etc. In some embodiments of the computing fabric 400, one or more support services can be executed at the application layer 412, such as other software-defined services 440, rather than being executed as OS support services 425 at the software-defined network layer 410.

[0194] In fact, in one embodiment, one or more of the software-defined components 415-425 and 452-460 of the software-defined network layer 410 are implemented as corresponding configuration containers or container images of the computing fabric 400. That is, one or more services and other functionality provided at the software-defined network layer 410 of the computing fabric 400 (and in some specific implementations, all services and functionality provided at the software-defined network layer 410) can be implemented as corresponding containerized components / MEEE / granules 140 of the NGPCAS 100. Thus, in a manner similar to that discussed herein for the containerized components / MEEE / granules 140 of the application layer 412, the containerized components / MEEE / granules 140 of the software-defined network layer 410 can be uniquely identified within the NGPCAS 100 by corresponding addresses, communicatively connected to other containerized components / MEEE / granules 140 of the NGPCAS 100 and optionally to the physical components 135, 138 of the NGPCAS 100, and started and removed as needed or when needed, etc.

[0195] Application layer of computing structure

[0196] Turning now more specifically to the application layer 412 of the computing fabric 400, and as Figure 4 shown, the application layer software components 412 include a set of software-defined services or applications 435 (such as software-defined process control or automation-related services 435) and a set of subsystems 438 of the NGPCAS 100 (such as subsystems for software-defined process control or automation), and optionally may include a set of other software-defined business logic services 440 of the NGPCAS 100 (e.g., enterprise business logic services related to process control or automation). In some specific implementations of the computing fabric 400, the application layer software components 412 may include a set of third-party business logic services 448. For example, the third-party services 448 may be generated by a software development kit (not shown) of the computing fabric 400, and users may develop, generate, install, and manage the third-party services 448 at the SD application layer 412 via the software development kit. Generally speaking, the services and applications 435-448 provided at the application layer 412 form a logical process control system 445 and provide related functionality. Generally speaking, the applications 435-448 may be provided by the system 100 itself, third parties, vendors, end users 155, and / or other sources. For example, one or more of the applications 435-448 may be built on the APIs 160, 165 provided by the computing fabric 102, and / or one or more of the applications 435-558 may be encapsulated as containers and distributed by the orchestrator 422.

[0197] Each different control service 435 can be configured with desired parameters, values, etc., and optionally with other control services 435; each instance of the configured control service 435 can be executed in its own container; and each configured container can be assigned (or pinned) to execute on the corresponding compute node Ny and / or cluster Cx. Thus, each configured control service 435 can be a logical or software-defined control entity that can be functionally configured and can execute in a manner similar to traditional hardware-implemented process controller devices, control modules, process control function blocks, etc. However, unlike traditional hardware-implemented process controller devices, traditional control modules, and traditional control function blocks, and advantageously, the computing fabric 400 can easily replicate multiple instances of the same configured control service 435 for various purposes, such as performance, fault tolerance, recovery, etc. For example, a controller service (executing in its own container) can be configured to execute a control module service (executing in its own container), and the control module service can be configured to execute a set of control function block services (where each one executes in its own container and where each one can be configured with corresponding parameters, values, etc.). Thus, the set of configured containers corresponding to the set of configured control function block services can (although not necessarily) be nested within the configured control module service container, and the configured control module service container can be nested within the configured controller service container. The set of configured containers corresponding to the set of configured function block services can be assigned to execute on different cores of a particular processor of the computing platform 405, for example, for performance load balancing purposes. When the load changes, one or more of the configured function block service containers can be moved to execute on different processor cores, different processors, or even different computing fabric nodes to attempt to rebalance the load; however, the moved function block service containers will still be nested under the configured control module service container and will execute accordingly.

[0198] In addition to control service 435, other types of application layer services 440 related to industrial process control may be provided by application layer 412, such as but not limited to operator display and handover, diagnostics, analytics, security routines, reporting, data historian, service configuration, container configuration, communicating information with external or other systems, enterprise-level applications, process control and / or automation resource and / or resource group management, etc. For example, process control and / or automation resource group management services may allow user 155 to group and / or isolate various resources based on NGPCAS 100 and / or other process control or automation considerations. For example, resource groups may be formed as follows: based on physical characteristics, such as site or physical location, group of sites / physical locations, subset of sites or physical locations, geographical region, etc.; based on logical characteristics, such as category, container and / or container type, control strategy, capabilities, timing, performance, user characteristics, etc.; based on functionality, such as storage items, networking items, etc.; and / or based on other types of grouping corresponding to NGPCAS 100 and / or combinations thereof. Generally, any functionality or business logic related to controlling an industrial process, supporting NGPCAS 100, and / or any process control or automation system related to NGPCAS 100 that is executed during the runtime of NGPCAS 100 may be logically implemented in computing structure 400 as corresponding application layer services 435, 440 executed in corresponding containers. For example, any one or more of the enterprise-level computing structure functionality 320 may be implemented in or as containerized services in corresponding containers. Additionally, when the business logic of services 435, 440 and / or the receiving physical components 135 / 138 require it, any one of the containerized services 435, 440 may be communicatively connected to the corresponding physical components 135 / 138 located at the physical locations of NGPCAS 100, for example, via SD network layer 410. Additionally, any one of the containerized services 435, 440 may be communicatively connected to any other containerized services 435, 440 to transfer data and / or information therebetween when their respective business logics require it.

[0199] In a similar manner, each different subsystem 438 of application layer 412 of computing structure 400 may be provided by or executed in a corresponding container. This group of subsystems 438 provides virtual or logical process control-related subsystems of logical process control system 445. In some cases ( Figure 4(not shown in figure), subsystem 438 may provide or include one or more application layer services, and thus, the configuration containers of services 435, 438 provided by the subsystem may be nested within the configured subsystem container. Generally speaking, this set of subsystems 438 allows control service 435 and other services 440 to be easily and consistently grouped and / or managed. In a preferred embodiment, each node Ny of computing structure 400 hosts a corresponding instance of each subsystem in the set of subsystems 438, such that the subsystem services are readily and easily available to other application layer services 435, 440, 448 currently executing on each node Ny. Thus, changes to one or more subsystems 438 may be coordinated among their corresponding instances executing at each node Ny (e.g., under the guidance of OS 410). Therefore, not only is this set of subsystems 438 highly available and readily available to any application layer service 435, 440, 448 executing on the same node Ny, but in the event of a computing structure node failure, a computing structure node component failure, or a specific subsystem instance failure at a computing structure node, the functionality provided by this set of subsystems 438 can be easily maintained for logic process control system 445.

[0200] Examples of subsystems 438 that may be provided by application layer 412 of computing structure 400 include, but are not limited to:

[0201] - A continuous process control subsystem for managing the scheduling and execution of the business logic of logical and physical control system entities (such as controllers, I / O assignments, control modules, function blocks, ladder diagram logic, and structure text-based control algorithms, etc.);

[0202] - A state-based process control subsystem for managing, tracking, assigning, changing, exporting, transitioning, analyzing, visualizing, recording, etc. the state of the entire process control system 445, the state of the containerized components / MEEE / particles 140 of the process control system 445, and / or the state of the physical components 105, 108 controlled by the process control system 445, and for driving an industrial process to achieve a desired process state within defined constraints (such as safety, environmental, and / or profitability constraints);

[0203] - An event-based process control subsystem that includes various control services that can be triggered to execute based on the occurrence of one or more events;

[0204] - A batch process control subsystem that includes various control services and can perform batch control and tracking of regulatory items (e.g., for government traceability and management of regulatory records related to batch process control and generated during batch execution and at other times);

[0205] - A historical record subsystem that includes various application layer services to record time - series data of process I / O and events within system 100;

[0206] - A diagnostic subsystem that includes various application layer services for collecting and providing diagnostic data from various other application layer services, other subsystems, compute fabric nodes Ny, components of the software - defined network layer 410, and / or other components of system 100;

[0207] - A process I / O subsystem that includes various application layer services to manage I / O connections and configurations for process I / O within the process control system 445, such as packet router / switch services 442;

[0208] - A user subsystem that includes various application layer services 440 to authenticate and / or validate user credentials when a user attempts to access the compute fabric 400, for example, via APIs 160, 165;

[0209] - An alert subsystem that includes various application layer services for maintaining the definition, condition, and status of alerts within system 100, such as process alerts, hardware alerts, maintenance alerts, unit alerts, network - layer alerts, I / O alerts, hardware asset alerts, software asset alerts, diagnostic alerts, etc.;

[0210] - A licensing subsystem that includes application layer services 440 to verify or ensure that a user has privileges, enforce licenses, prevent unauthorized activities from occurring, provide management of licenses, report and record license status and activities, etc., based on the license level of the compute fabric 400 and / or system 100 (such as perpetual licenses, time - subscription licenses, consumption - based licenses, remote licenses, etc.);

[0211] - A distributed event subsystem that includes various application layer services to distribute generated events (or their notifications) and corresponding timestamps indicating the corresponding occurrence times at the respective event sources across all nodes Ny of the compute fabric 400, such that consistent record - keeping can be provided across all nodes Ny; and

[0212] - A configuration subsystem that manages the storage, update, and version control of a configuration database that stores the configurations of various services provided by the application layer 412, such as control configurations. Corresponding instances of the configuration database can be stored at each compute fabric node Ny, such that the compute fabric 400 provides fault tolerance for the configuration database across all nodes Ny. Writes to the configuration database can be atomic across all fault - tolerant instances of the entire system 100, and reads from the configuration database can be from a single local instance of the configuration database. In some cases, large read requests can be segmented and the results provided from multiple nodes Ny in parallel.

[0213] In addition, the application layer 412 of the computing fabric 400 may include additional or alternative subsystems 438 that may be utilized by the system 100. For example, the subsystem 438 may include: a control strategy subsystem for higher-level and / or overall control strategies, such as to achieve product and process performance and quality goals; an analysis subsystem; an optimization subsystem, a quality and energy balance subsystem, a safety subsystem, which may include one or more dedicated algorithms for detecting security intrusions, etc.

[0214] Software Defined Router / Switch Services

[0215] The software-defined packet router / switch service 442 generally operates as an application or service responsible for transporting packetized I / O information (and in some cases, other types of packetized data or information) between endpoints of the NGPCAS 100, such as from the physical components 135 / 138 to the containerized components / MEEE / granules 140 at the application layer 412 of the computing fabric 400 and vice versa; from the physical components 135 / 138 to the containerized components / MEEE / granules 140 at the network layer 410 of the computing fabric 400 and vice versa; from the containerized components / MEEE / granules 140 at the application layer 412 to another containerized component / MEEE / granule 140 at the application layer 412; from the containerized components / MEEE / granules 140 at the network layer 410 to another containerized component / MEEE / granule 140 at the network layer 410; from the containerized components / MEEE / granules 140 at the application layer 412 to the containerized components / MEEE / granules 140 at the network layer 410 and vice versa, and so on. For example, the packet router / switch service 442 may communicatively couple the various endpoints and transfer data therebetween using any suitable data delivery or data transfer paradigm (including request / response, publish / subscribe, etc.). In one embodiment, when at least one of the software-defined application layer software components 435-448 is deployed as microservices / MEEE / granules communicatively connected via a microservice / MEEE / granule bus (not shown), the packet router / switch service 442 (in some cases, in conjunction with the OS 410 and its support services 415-425) may support and / or manage the microservices / MEEE / granules and the microservice / MEEE / granule bus such that the microservices / MEEE / granules may transfer data and / or information (e.g., in packetized format) therebetween. In additional or alternative embodiments, the software-defined packet router or switch service 442 may use any one or more packet-based networks or links (such as the network 402 and / or the software-defined links provided by the computing fabric 400) to transfer packetized data and information between one or more containerized components / MEEE / granules 140 and / or physical components 135 / 138 of the NGPCAS 100.

[0216] Note that Figure 4 The software-defined packet router / packet switch service 442 is shown as a separate service at the application layer 412; however, this is for purposes of clear discussion (and not limitation). In other embodiments, the packet router / switch service 442 may be included in the subsystem 438 of the computing fabric 400, and / or at least corresponding portions or all of the software-defined packet router / switch service 442 may be implemented in the HCI adapter 430 or in the computing fabric operating system 410. Alternatively, the packet router / switch service 442 may be an application layer software-defined service 440 that is in its own independent subsystem within the application layer 412, or that is not associated with any subsystem. In any case, and generally speaking, the software-defined packet router / packet switch service 442 may typically be implemented as a containerized component / MEEE / particle 140 of the computing fabric 400.

[0217] Accordingly, the containerized packet router / switch service 442 may be accessed by other containerized components / MEEE / particles 140 of the computing fabric 400 (both at the application layer 412 and the network layer 410) for purposes of data transfer or data delivery. In some cases, the packet router / switch service 442 may utilize the API 428 to cause, for example, the transmission of packetized I / O data and / or other types of packetized data via the OS support services 415-425. In some cases, the packet router / switch service 442 may cause data to be transmitted via the microservice / MEEE / particle bus. In effect, the packet router / switch service 442 acts as a logic or gateway (e.g., an API gateway) that causes packetized process I / O and / or other types of packetized data to be routed between the configured containers of the computing fabric 400, and that causes packetized process I / O, packetized control signals or instructions, and other types of packetized information to be routed between the configured containers of the computing fabric 400 and the physical components 135, 138 deployed in the field environment 120 of the NGPCAS 100.

[0218] As will be appreciated, a significant advantage of the systems described herein is that it reduces the data movement and data storage required to support applications or other uses that are executed in real time in a computing architecture. Specifically, due to the secure, real-time communication architecture provided in the NGPCAS described herein, including the use of secure, encrypted data links (e.g., VPNs) between various software and hardware elements in the computing architecture and at physical locations (e.g., factories), elements in the computing architecture such as MEEEs can access data in real time from any location in the system (i.e., from any other element that creates or hosts the data). This feature means that applications and other applications that are executed in or by a higher-level system element or platform (e.g., control applications, maintenance applications, data entry or tracking applications, fleet management applications, etc.), or any individual MEEE or particle thereof, can use, for example, publish / subscribe communication, dedicated data calls, etc. to access the data in real time at any location where the data resides (e.g., in another MEEE or particle anywhere in the system, in a computing architecture database, in a physical location database or server, in a field device at a physical location, etc.). In fact, the individual MEEEs or other computing elements (particles) that make up or implement a particular application or use can include pointers or references to the data required for their operation, where the data resides in the system, and the particle can access the data in real time when it is needed or used by the MEEE or particle. Thus, for example, as soon as the data is created and / or initially stored, the particle can access and use the data. This feature means that the data does not need to be moved from, for example, a server in a physical location to a cloud-based server in the computing architecture before it can be used or accessed in real time by an application or element (e.g., a particle) in the computing architecture. Thus, this feature accelerates computing operations and reduces the data flow that has been performed in the past simply to move data from one location to another so that the data is available for use in real time by applications that use the data. The systems described herein thus enable data to be used at any location where it resides or is generated through direct data calls or publish / subscribe communication, whether the data resides in a device within the computing architecture or is generated by a device within the computing architecture or by a device at a physical location or factory.

[0219] Logical / Virtual Components

[0220] In addition, at the application layer 412 of the computing fabric 400, at least some of the physical process control devices or components of a traditional process control system (e.g., controllers, safety logic solvers or devices, data storage devices, etc.) can be logically implemented in the logical process control system 445 as corresponding services 435, 440, or subsystems 438 executing in respective containers. If desired, by leveraging control routines, other application layer software components 412, parameters, reference values, lists, and / or other data to configure the logical devices, such logical or virtual instances of process control devices or components can be configured in a manner similar to their physical counterparts. For example, a controller service can be configured with a number of control modules, and a display view service can be configured with user access control and graphical elements, etc. The configured logical or virtual process control devices or components (e.g., container images of process control devices or components) can be identified, for example, via respective device tags or identifiers within the logical process control system 445, and the respective signals received and generated by the configured logical or virtual instances of process control devices can be identified via respective device signal tags or identifiers within the logical process control system 445. The logical or virtual instances of process control devices can be uniquely identified within the system 100 and operate as a single entity in place of any corresponding physical devices of the system 100, or the logical or virtual instances of process control devices can be an agent or digital twin of a physical device included in the system 100, as previously described.

[0221] At the software-defined application layer 412, the computing fabric 400 also includes a software-defined storage entity or component 413, which can provide abstract data storage (and access thereto) for the services and subsystems 435 - 448 of the SD application layer 412. For example, historical databases, configuration databases, and other types of process control system databases and data storage entities, as well as temporary storage utilized by various process control application services 435 - 448 during execution, can be provided by the software-defined storage entity 413. Storage databases, regions, devices, etc. can be virtualized or logical storage entities or components that can be assigned or allocated (and can be reassigned and reallocated) by the computing fabric operating system 410 to various storage resources of the nodes Ny of the computing platform 405. For example, a single software-defined logical database can be implemented through the hardware memory resources of multiple nodes Ny. Additionally, the SD storage service 418 of the computing fabric operating system 410 can assign / reassign and reassign / reallocate the software-defined storage entity 413 at the application layer 412 to different storage resources provided by the nodes Ny based on the performance, resource, and configuration requirements of the storage entity or component 413 and optionally other components of the SD application layer 412.

[0222] Orchestration

[0223] Now returning to the software-defined network layer 410 of the computing fabric 400, for purposes of facilitating discussion, Figure 4 a particular computing fabric OS service, namely the orchestration service 422, is shown separate from the depiction of other computing fabric OS services 415-420, 425. Generally speaking, the orchestration service 422 instantiates container images (e.g., container images of the application layer control service 435, subsystems 438, third-party services 448, and other software-defined services 440) to run or execute containerized applications or services on corresponding hardware and / or software physical computing nodes Ny, and assigns various SD data storage entities to reside on corresponding hardware storage and / or software storage nodes Ny. For example, the orchestration service 422 can instantiate and assign various instantiated container images to execute on and / or utilize the resources of a single node Ny or the resources of two or more nodes Ny. Additionally, the orchestration service 422 can assign various SD data storage entities or components 413 of the application layer 412 to reside on physical layer storage resources of a single node Ny, multiple nodes Ny, etc., e.g., so that the resident containerized components can access them easily and quickly, for redundancy purposes, to balance memory usage across physical platforms, etc. In doing so, the orchestration service 422 not only establishes running containerized applications and services, but also manages fault tolerance, load balancing, quality of service (QoS), and / or other performance aspects of the running containerized applications and services of the computing fabric 400, e.g., via the QoS configuration service 452, fault tolerance service 455, load balancing service 458, and optionally other performance-related services 460 provided by the OS 410. Thus, the orchestration service 422 can be invoked or accessed by other OS services 415, 418, 420, 425, and the orchestration service 422 in turn can invoke or access one or more of the performance-related services 452-460. Generally speaking, the orchestration service 422 allocates resources to the containerized components and SD data storage entities of the logical process control system 445 such that the containerized components can operate efficiently and securely, e.g., control an industrial process at least at a best-effort performance level.

[0224] To this end, the performance-related services 452-460 of the OS 410 can monitor performance parameters, resource usage, and / or criteria during runtime, detect any associated conditions that occur and / or are predicted to occur, and provide and / or implement any changes to the assignment of application layer software components (e.g., containerized components) 412 to the hardware and / or software resources of the computing platform 405. Thus, during the runtime of the system 100, when various expected and / or unexpected hardware and / or software conditions arise and are detected, the orchestration service 422 responsively adjusts the allocation of the hardware and / or software resources of the various compute fabric nodes Ny to the instantiated container images to maintain (or attempt to maintain) a target or best-effort performance level and operational fidelity. The detected conditions that can cause the orchestration service 422 to modify the allocation and / or assignment between the containerized component 412 and the physical resources of the node Ny can include, for example, hardware failures or malfunctions, software failures or malfunctions, overload of a particular compute fabric node, increased or decreased bandwidth of various networking components, addition or removal of compute fabric nodes and / or compute fabric node clusters, hardware and / or software upgrades, pinning and / or unpinning of containerized services and / or applications, diagnostics, maintenance, and other routines that can cause the hardware and / or software resources to be temporarily unavailable for runtime use. Possible responsive and / or mitigating management actions that the orchestration service can take can include, for example, reassigning containerized services and / or applications to execute using different software and / or hardware resources (in some cases, on different nodes Ny), activating and / or deactivating software and / or hardware resources, changing the priority of access of various containerized components to various software and / or hardware resources, etc.

[0225] Thus, in general, services, subsystems, and other software components of the software-defined application layer 412 (e.g., 435, 438, 440) can determine, define, or specify the processing, containerization, networking, and storage requirements of the logical process control system 445 at the individual container level and the aggregate level (e.g., at the subsystem level, unit level, area level, and / or the entire process control system 445). Through the API 428 (and in some configurations, also through the HCI adapter layer 430 and API 432), the OS 410, its support services 415, 418, 420, 422, 425, and its orchestration service 422 supervise and manage the hardware and software resources of the compute fabric node Ny to support those requirements. For example, in some embodiments, the SD orchestrator 422 can cause different instances of a particular control routine 435 or a particular other service 440 to execute on different nodes Ny, e.g., for fault tolerance, quality of service, and / or other performance criteria of the compute fabric 400. Advantageously, when the requirements of the logical process control system 445 change dynamically over time, the OS support services 415, 418, 420, 422, 425, and / or the orchestration service 422 can modify, change, and adjust the usage of the hardware and software resources of the node Ny, e.g., in response and / or in a predictive manner.

[0226] For example, when the logical process control system 445 creates an additional instance of the control service 435 to execute in an additional container, the OS support services 415 - 425 can responsively (via the API 428 and optionally the HCI adapter 430 and API 432) assign the newly created containerized component to execute on a corresponding compute fabric node Ny, can rebalance the existing containerized components among the nodes Ny, can assign specific hardware memory resources to support the logical memory resource requirements of the additional containerized component, can adjust the routing table utilized by the node Ny to support the logical routing requirements of the newly created containerized component, etc. As another example, when a particular cluster C2 needs to stop service (e.g., expectedly for maintenance purposes or unexpectedly due to a lightning strike), the OS support services 415 - 425 can pre-reassign the containerized components currently assigned to execute on the cluster C2 to other clusters based on the current requirements of the logical process control system 445 and the availability of the hardware and / or software resources of other clusters, and the support services 415 - 425 can adjust the routing table utilized by the cluster Cx accordingly, such that the continuity of the execution of the containerized components is maintained even when the cluster C2 stops service.

[0227] Accordingly, the software-defined network layer 410 automatically, dynamically, and reactively determines, initiates, and executes changes to the allocation of the hardware and software resources of the node Ny of the computing platform 405 to different application layer software components 412 based on the detected conditions such as performance improvement of various logical and / or physical components or groups thereof, performance degradation of various logical and / or physical components or groups thereof, occurrence of a fault, failure of a logical and / or physical component, configuration change (e.g., due to a user command or due to automatic reconfiguration performed by a service of the computing fabric 400), etc. Accordingly, the computing fabric 400 can automatically reallocate the hardware and software resources of the node Ny in response to changing conditions and components of the computing fabric 400, thereby supporting the process control system 245 and other services executed at the application layer 412 of the computing fabric 400.

[0228] simulation

[0229] In some specific implementations, the computing fabric 400 can implement simulations or changes to various application program services 435, 440, 448, to the entire software application layer 412, to various support services 415 - 425, 452 - 460, and / or to the entire software-defined network layer 410. That is, the simulation of the target component / layer can be executed in cooperation with the active software-defined component / layer on the computing platform 405, and thereby receive runtime data from the field environment of the industrial process plant and operate accordingly using, for example, the same logic, state, timing, etc. as the active target component / layer or using simulated test logic, state, timing, etc. However, the I / O and other types of data generated by the simulation are prevented from being delivered to the field environment, and the simulation can be paused, accelerated, slowed down, fed test inputs, and otherwise managed to observe behavior and modify the simulated component / layer. Accordingly, after approving the simulation portion of the computing fabric 400, only that simulation portion can be activated for use during the runtime operation of the industrial process plant, without requiring a portion of the computing fabric 400 to be paused or taken out of service to do so.

[0230] Example safety features of NGPCAS

[0231] Next, various security features of the Next Generation Process Control and Automation System (NGPCAS) 100 are described. As previously discussed, today's process control and automation systems designed around the Purdue model have many drawbacks, including increased complexity (and thus, more components and opportunities for process failures), reduced performance, and a greater risk of network intrusion, among others. For example, in today's process control and automation systems, there are typically at least three different domains that can exist between levels 2, 3, and 4, and the security policies for each domain can be different and require different security management techniques. Therefore, it is challenging to achieve cross-level connectivity and can introduce significant delays in data delivery across multiple Purdue levels (e.g., from level 2 to level 4 and above). In addition, the industry is seeking the ability to deliver instructions, commands, and / or other information from higher levels of the Purdue model to lower levels. For example, a technician or other process plant personnel may work remotely via his or her portable computing device and may want to monitor runtime process plant operations and adjust configurations, parameter values, settings, etc. within the process control system in response to the monitored conditions. In such cases, when instructions and information move from higher levels to lower levels of the Purdue model (e.g., via "holes" added to the established security mechanisms for these purposes), the outbound firewalls and other currently implemented security mechanisms designed and utilized to prevent external information from flowing into the plant are necessarily compromised, thereby introducing a significant additional risk of external parties accessing the information and data in the protected lower levels of the plant and other types of network intrusion. In addition, the multiple security mechanisms implemented between the Purdue layers (as originally designed or with any added "holes") create a highly complex network that is difficult to design, maintain, and utilize to efficiently transfer information between the Purdue levels.

[0232] In addition, in today's systems that execute some process control and / or automation functions in the cloud, other undesirable problems are introduced. For example, when the process plant of such a system loses Internet connectivity, it cannot access the cloud, and any control or automation functionality provided by the cloud is unavailable. Additionally, in addition to those introduced by the specific implementation of the Purdue model, cloud-based implementations add additional delays, bottlenecks, and complexity. Moreover, there are no sufficiently secure mechanisms to support local communication between process control devices (e.g., field devices) and the cloud.

[0233] The security features of the NGPCAS 100 address at least these known security issues of the Purdue model implementation, and provide additional security, improved performance, easier engineering and maintenance, and other benefits and advantages of the NGPCAS 100. Examples of such security features are described below. Any one of the described security features can be used as an independent security feature or in combination with any other one or more security features. In some embodiments, the various security features of the NGPCAS 100 can be implemented as services 425 provided by the software-defined network layer 410 of the computing structure 400. Additionally, the software-defined network layer 410 can provide other services 415 that manage resources and / or group the hardware and / or software resources of the software-defined network layer 410 and / or the physical layer 405 of the computing structure 400, and these resources and / or groups are allocated and / or utilized to support the security features of the NGPCAS 100.

[0234] Example Cybersecurity Features of NGPCAS

[0235] As previously discussed, the communication between nodes, configuration containers, locations, devices, and / or other parts of the NGPCAS 100 and the manually operated computing device 155 (if any) can be protected via one or more VPNs, which may include mutually exclusive and / or nested VPNs. As previously indicated, for purposes of discussion and not limitation, the term "VPN" is used herein to generally and categorically refer to various types of secure, encrypted point-to-point (PTP), peer-to-peer (P2P), and / or point-to-multipoint (PTM) connections. In any case, each VPN, whether nested or otherwise, can block traffic from nodes, components, etc. not included in the VPN, and the endpoints of the VPN can communicate with each other via the respective sessions through the VPN. The VPN configuration of the NGPCAS 100 (e.g., the number of VPNs, the type of VPNs, the nesting of VPNs, etc.) can be implemented via one or more public and / or private networks, including private enterprise networks, the public Internet, etc. Additionally, the VPN configuration of the NGPCAS 100 can be customized to meet the security needs and requirements of, for example, enterprise and / or architecture provider managers. If needed, at least one of the VPNs of the NGPCAS 100 can be a permanent VPN.

[0236] See FIGS. 1 and Figure 4To illustrate, in the example minimal VPN configuration, communication between the physical or on-site environment 120 of the NGPCAS 100 (e.g., all or all components, devices, etc. of the NGPCAS 100 set in the on-site environment 120) and the computing structure 102 of the NGPCAS 100 (including all or all containerized components included in the computing structure 102) can be protected via only a single VPN. In the example maximal VPN configuration, communication between any pair of entities of the NGPCAS 100 (e.g., exposed APIs 160, 165, other containerized components / MEEE / granules 140, computing structure 102, physical components 135, locations 115, 118, the entire physical environment 120, user applications and / or devices 155, architecture provider / manager applications and / or devices 161, etc.) can be protected via corresponding VPNs. For example, in the maximal VPN configuration, a configuration container providing control service functionality that requires using utility functionality to execute control services can communicate with a configuration container providing utility functionality via a corresponding VPN. In an implementation, the VPN configuration of the NGPCAS 100 can include one or more of the following:

[0237] Point-to-point VPN, such as a VPN dedicated to communication between only one physical component 135 and only one containerized component / MEEE / granule 140;

[0238] Point-to-multipoint VPN, such as a VPN dedicated to communication between only one physical component 135 and multiple containerized components / MEEE / granules 140, a VPN dedicated to communication between multiple physical components 135 and only one containerized component / MEEE / granule 140, etc.;

[0239] Multipoint-to-multipoint VPN, such as a VPN dedicated to communication between only a subset of all physical components 135 at location 115 and only a subset of all containerized components / MEEE / granules 140 at the computing structure 120;

[0240] A VPN dedicated to communication between different layers of the computing structure 400, such as communication between the software-defined application layer 412 and the software-defined network layer 410;

[0241] A VPN dedicated to communication between one or more selected services, subsystems, and functionality of different layers of the computing structure 400, such as communication between one or more selected ones of the services and / or subsystems 435, 438, 440 at the application layer 412 and one or more selected ones of the software-defined services and / or functionality 415, 418, 420, 425 at the network layer 410;

[0242] A VPN that specifically serves only instances of API 160 and user application 155, and one or more other VPNs that specifically serve API 160 and one or more containerized components / MEEE / particles 140 and / or physical components 135, 138 required to obtain data or provide data to user application 155, for example, in a point (e.g., API 160) - to - point and / or point (e.g., API 160) - to - multi - point manner;

[0243] Location - to - location VPN, such as a VPN that specifically serves communication only between a single location 135 and the entire computing structure 102;

[0244] Multi - location VPN, such as a VPN that specifically serves communication between the computing structure 102 and multiple locations 115, 118, where the multiple locations together are only a subset of all the locations of the NGPCAS 100;

[0245] And / or other types of VPNs that protect and secure communication between specified or defined endpoints (e.g., nodes, configuration containers (which may include APIs 160, 161), locations, devices, and / or other parts of the NGPCAS 100) within the NGPCAS 100. In fact, in an embodiment, each endpoint may be required to authenticate to each VPN that the endpoint will use to send and / or receive communication with one or more other entities that have already authenticated to that VPN.

[0246] Example User Security Features of NGPCAS

[0247] As previously mentioned, user 155 of NGPCAS 100 may include a human user operating a computing device, such as an operator, a configuration engineer, a third-party person approved by the enterprise to access at least a portion of system 100, another agent of the enterprise, or an agent of architecture provider / manager 161, etc. One or more applications (e.g., a web browser, a thin client, or another user interface) are executed at the computing device to communicate with NGPCAS 100. Additionally or alternatively, user 155 may include an automated user, such as an external application or service that does not have a user interface and is executed on an external (e.g., remote) computing device or system. The external application / service user 155 may be enterprise-based, such as an application and / or service configured by enterprise personnel, or may be a third-party application and / or service. Some of the external application / service users 155 may be applications and / or services provided by architecture provider / manager 161, used by architecture provider / manager 161 and / or by the enterprise. In any case, when a legitimate user 155 accesses system data and / or functionality, in order to protect system 100 from possible cyberattacks, each user 155 may need to utilize one or more exposed APIs 160 to interface with and / or access the system data and / or functionality provided by NGPCAS 100. For example, the functionality provided by NGPCAS 100 for user 155 to utilize may be implemented as corresponding containerized components / MEEEs / granules 140 in computing fabric 102, and such containerized components may be exposed to user 155 only via API 160 (e.g., as a website, a service, etc.), where API 160 may be accessed by user 155, for example, via a web browser or a thin client. Generally, any functionality provided by NGPCAS 100 for user 155 to utilize (e.g., all functionality) can be accessed by user 155 only via one or more corresponding APIs 160. In addition, for further security, the communication between user 155 and one or more APIs 160 may be protected via a corresponding VPN 158. For further security, it may be required that user 155 be first authenticated to VPN 158 before being able to utilize API 160, and specifically, a human user may perform multi-factor authentication to obtain access to VPN 158.

[0248] In some cases, a particular user 155 may be authenticated and / or authorized to utilize only a subset of the available, exposed APIs 160. That is, the set of APIs 160 that are exposed to different users 155 and / or to which different users are authorized to access may vary based on the respective credentials of the users. For example, authorization of different users 155 to different APIs 160 may be based on the containerized components 140 (e.g., applications and / or services) to which the APIs 160 provide access. Additionally or alternatively, authorization of different users 155 to different APIs 160 may be implemented on an enterprise basis (e.g., users 155 of enterprise A are permitted to access a first subset of APIs 160, while users 155 of enterprise B are permitted to access a different second subset of APIs 160); on a location basis; on a node basis; on a user credentials basis (e.g., the role, responsibilities, and / or skills of the user); on a time basis; and / or based on a combination thereof.

[0249] Accordingly, by using a VPN to secure communications within the NGPCAS 100, security mechanisms used to secure cross-level communications between layers of a Purdue model-based system (e.g., firewalls, digital diodes, DMZs, and other mechanisms) can be eliminated. In fact, in one implementation, the NGPCAS 100 does not include (e.g., excludes) any firewalls, data relays, data diodes, and DMZs for securing communications to, from, and within the NGPCAS 100, thereby simplifying the design, engineering, configuration, maintenance, and runtime execution of the NGPCAS 100 as compared to a Purdue model-based system. Further, since each VPN blocks or does not process any traffic originating outside of the VPN, and since any and all human and / or automated users 155 of the VPN must be authenticated to the VPN, data utilized within a process control or automation system is only exposed to those components / entities that have been authorized to access the VPN through which the data is being delivered. Accordingly, the opportunity for externally initiated cybersecurity vulnerabilities and the spread of malware is significantly reduced, or even eliminated in some cases, as compared to today's systems.

[0250] In addition, since access to selected functionality provided by the NGPCAS 100 is provided to the user 155 via the API 160, and since the user 155 must be authenticated to the VPN 158 and optionally authenticated to utilize the specific API 160 as described above, the cybersecurity risk is even more significantly reduced compared to the cybersecurity risk of today's systems. For example, such security techniques used within the NGPCAS 100 eliminate the need to install any NGPCAS-specific software on some external computing devices (such as those operated by human users). That is, such external computing devices may have no (e.g., zero) installed NGPCAS-specific software, thereby eliminating another possible avenue of cybersecurity vulnerability. As another example, a computing device operated by the user 155 (human or automated) may be authenticated to a VPN 158 that is not utilized by any component of the NGPCAS 100. That is, the VPN utilized by the user 155 (and optionally by the API 160 exposed to the user 155) and the VPN utilized by other non-user components and / or entities of the NPGCAS 100 may be mutually exclusive VPNs, thereby further eliminating possible avenues of other cybersecurity vulnerabilities. As yet another example, any access (including read-only access) by an unauthorized (but otherwise valid) user 155 to the NGPCAS 100 or portions thereof can be completely prevented.

[0251] Example Identity Security Features of NGPCAS

[0252] As previously mentioned, each component of the NGPCAS 100 (each containerized component / MEEE / particle 140, each physical component 135, each device 105, 125, 108, 128, 148, each location 115, 118, the computing fabric 145, the architecture provider / manager 161, or generally any component that can serve as an endpoint within the NGPCAS 100 network) can be uniquely identified within the NGPCAS 100 by a unique network identifier. In an embodiment, the unique network identifier of the subject component is based on the identity of the subject component as defined in the configuration database of the NGPCAS 100. In a manner similar to that discussed above for the user 155 of the NGPCAS 100, each component can be authenticated and authorized based on its unique network identifier so that the component can access one or more VPNs, communicate with one or more nodes, configuration containers, locations, devices, and / or other components, etc. Generally, components of the NGPCAS 100 having unique network identifiers (e.g., all components of the NGPCAS 100) can be discovered within the NGPCAS 100 and may be required to utilize corresponding certificates to authenticate and authorize access.

[0253] At least some of the physical devices 105, 125, 108, 128, 148 included in the NGPCAS 100 may also include a device identifier unique across enterprises, such as described above with respect to Figure 5A _5. In these devices, an indication of the association between the unique device identifier of the device and the unique network identifier of the device may be stored, for example, within the device itself, in the configuration database of the NGPCAS 100, in the network manager of the NGPCAS 100, and the like.

[0254] Example Communications Security Features of NGPCAS

[0255] To further protect the NGPCAS 100, all communications sent and received via the network of the NGPCAS 100 (e.g., via the VPNs 130, 158, 162 between various authentication and authorization components) may be required to be signed and encrypted. Additionally or alternatively, cleartext protocols such as HTTP may be prohibited or otherwise blocked from being utilized within the NGPCAS 100. To provide even further security in an arrangement where the architecture provider / manager 161 manages multiple NGPCAS 100s for multiple enterprises, each enterprise may have a different certificate authority (CA), and the use of self-signed certificates may be prohibited or otherwise blocked. Generally, to maintain security within the NGPCAS 100 over time, certificates may support revocation, have a modifiable key size (e.g., to support system growth), and may be automatically refreshed without any enterprise intervention.

[0256] Example calculation of structural safety characteristics of NGPCAS

[0257] In particular, with respect to protecting the computing architecture 400 and its components, various security techniques can be employed within the NGPCAS 100. For example, as described above, the containerized components / MEEE / particles 140 of the computing architecture 102 / 400 (e.g., APIs 160, 165; services and subsystems 435, 438, 440, 448, 413, 442 at the software-defined application layer 412; services and functions 415, 418, 420, 422, 425, 452, 455, 458, 460 at the software-defined network layer 410; APIs 428, 432 and / or other services provided at the adapter layer 430, etc.) can be configured for client certificate access, where the client can be, for example, another containerized component / MEEE / particle 140, a user 155, or an architecture provider / administrator 161. That is, anonymous access to the containerized components / MEEE / particles 140 can be disallowed, and access to certain containerized components / MEEE / particles 140 can be provided only to certain clients (e.g., via corresponding client certificates). In addition, client certificates can be rotated automatically and frequently. Additionally, in an implementation, unused features (e.g., applications, services, etc.) can be placed in a disabled (not enabled) state.

[0258] Furthermore, the containerized components / MEEE / particles 140 can be signed and scanned regularly for known vulnerabilities. The containerized components / MEEE / particles 140 can be required to execute or run with minimum privilege (e.g., always running), and the containerized components / MEEE / particles 140 can be required to utilize the maximum level of container isolation during runtime (e.g., by default). In some specific implementations, the definition of groups of containerized components can be blocked or restricted. For example, the NGPCAS 100 can be allowed to define only groups of containerized components that are particularly relevant to process control system components. For example, a group of containerized components for a bioreactor can be defined or configured as a bioreactor grouping (e.g., by using pods or other suitable mechanisms provided by the operating system 410 of the computing architecture 400), such that the bioreactor grouping of containerized components can be co-located and moved together, e.g., to execute on different nodes, clusters, segments, etc.

[0259] At the physical layer 405 of the computing architecture 400, access to different nodes Ny, different hardware segments, different clusters C1, …, Cn, etc. can be controlled, for example, on a server basis, on an API basis, etc. In addition, static data and disks can be encrypted statically.

[0260] Example Hardware Security Features of NGPCAS

[0261] In an embodiment, field devices, hardware I / O devices, gateways, and other devices may include one or more forms of Embedded Device Identification (“EDID”). In the same way that a serial number indicates a specific instance of a product and may indicate additional information about the model, options, or other data about the product, the EDID is associated with and / or indicates a single instance of a device or product and / or may be associated with and / or indicate additional information. As will be described below, in addition to various security and other benefits, the EDID can also facilitate faster and less labor-intensive commissioning of a process plant.

[0262] FIG. 5A to FIG. 5C The specific implementation of the EDID in various types of hardware devices is shown. For example, Figure 5A is a block diagram showing a smart field device 500 such as a Foundation Fieldbus device. As should be understood, the smart field device 500 can be any number of device types, including valves, valve controllers, sensors, transmitters, or any other type of field device having a process, memory, and a communication channel capable of transmitting various types of data (settings, measurements, calculated values, device tags, etc.). The smart field device 500 includes a processor 502, one or more memories 504 storing various data readable according to the Foundation Fieldbus protocol (e.g., measurements, setpoint values, status information, scaling information, limit values, alarms, device descriptors, device IDs, device tags, etc.), as will be readily understood by those skilled in the art. The smart field device 500 also includes one or more sensors and / or actuators 506 and a communication transceiver 508, as will be understood. In Figure 5A the smart field device 500 shown, the device also includes an Embedded Device ID (EDID) 510.

[0263] Figure 5B is a block diagram showing a sensor / transmitter device 512. The sensor / transmitter device 512 includes a transducer 514 operable to measure a parameter, and a transmitter 516 operable to transmit an indication of the measured parameter to a receiving device (e.g., an I / O card, a smart field device, a gateway, a service operating on a computing structure, etc.). The sensor / transmitter 512 also includes an EDID 520.

[0264] The I / O device 522 is shown in Figure 5Cin the block diagram. The I / O device 522 shown in the figure is of a type commonly known in process control (except for including one or more EDIDs), and can facilitate converting one or more I / O signals from one or more corresponding field devices into signals that can be forwarded to a control device or service (e.g., a controller service operating in a computing structure), and converting one or more signals from the control device or service into signals that can be forwarded to the corresponding field devices. The I / O device includes a processor 524, a memory 526, and a library 528 of I / O modules 530A - 530D, each I / O module coupling a corresponding field device to the process control system through the I / O device 522. The I / O device 522 also includes one or more EDIDs 540, 550, 560. The EDIDs 540, 550, 560 included on the I / O device 522 may include a single EDID 540 associated with the entire I / O device 522, an EDID 560 associated with the I / O module library 528 (e.g., each configured to accept a set of terminals of the corresponding I / O modules 530A - 530D that couple the corresponding field devices to the I / O device 522), and / or one or more EDIDs 550A - 550D each associated with a corresponding one of the I / O modules 530A - 530D. In some embodiments, each individual component (I / O device 522, I / O modules 530A - 530D, and I / O module library 528) may have an EDID, while in other embodiments, only the I / O device 522 may have an EDID, etc. Additionally, although the I / O device 522 is shown as having four I / O modules 530A - 530D, in various embodiments, the I / O device 522 may have more or fewer I / O modules 530, and in other embodiments, the I / O device 522 may utilize another means (i.e., different from an I / O module) to couple the field devices to the I / O device 522.

[0265] Each of the EDIDs 510, 520, 530, 540, 560 is a unique identifier built into the device. Although in an implementation, the EDIDs 510, 520, 530, 540, 560 may include multiple pieces of information, in a preferred implementation, each of the EDIDs 510, 520, 530, 540, 560 is merely a unique identifier associated in a relevant database with other relevant information about the device. The EDIDs 510, 520, 530, 540, 560 can be embedded in their respective devices in any number of ways. For example, in an implementation, the EDIDs 510, 520, 530, 540, 560 are burned into non-volatile read-only memory (e.g., EEPROM, UV-ROM, etc.). In other implementations, the EDIDs 510, 520, 530, 540, 560 are hardwired into the device at the printed circuit board (PCB) level through, for example, a series of short and / or open signals. In other implementations, the EDIDs 510, 520, 530, 540, 560 can be embedded within a chip during manufacturing. In other implementations, the EDIDs 510, 520, 530, 540, 560 can be the result of a physically unclonable function that generates a substantially random value using variations in the manufacturing process of one or more components. Regardless of the manner in which the EDIDs 510, 520, 530, 540, 560 are embedded in the corresponding devices, the EDIDs 510, 520, 530, 540, 560 are generally difficult to modify and / or rewrite without at least opening the device to access the internal hardware of the device.

[0266] Figure 5D An example EDID 562 that can be embedded on a hardware device is shown. The EDID 562 can include only or at least include a unique identifier 564. However, in the case where the EDID 562 includes multiple pieces of information, the information can be stored on the device as a series of values. Example optional values (indicated by the dashed box) that can be included in the EDID 562 include values indicating the owner / enterprise / customer 565 associated with the device, the model number 566 of the device, the facility 567 associated with the device, the geographic region 568 associated with the device, the manufacturer 569 of the device, the registry 570 associated with the device, one or more options 571 present on the device, the manufacturing date 572 of the device, etc.

[0267] Particularly in an implementation where the EDID on the device includes only the unique ID, the database 580 can associate each EDID with values indicating various information 565 - 572 as needed, as Figure 5EAs shown. Various information 565-572 associated with each EDID can be dynamically stored in a database 580 when the device is sold, when the device is shipped, or even when the device is first used. The database 580 can be stored, for example, on a computing structure 102 and accessed by an EDID service 582, which can be responsible for authenticating and / or determining whether to allow the device to operate in a particular process control system, either as a whole or in cooperation with other services.

[0268] In an embodiment, when connected to the computing structure 102 (e.g., during commissioning, process startup, restart, etc.), each hardware device must authenticate to the system. A discovery service operating on the computing structure 102 requests and / or receives and / or discovers its EDID from each hardware device. The discovery service transmits each received EDID to the EDID service 582 (which, in an embodiment, may or may not be separate from the discovery service), and queries the database to determine one or more pieces of information associated with the EDID to determine whether to verify the EDID and, by extension, the device associated with the EDID. As a non-limiting example, the EDID service 582 can determine: whether a given EDID is associated with the owner / enterprise / customer associated with the process plant where the device is located; whether a given EDID is associated with the geographical area where the device is currently operating; whether a given EDID is installed at the facility for which it is intended; etc. In the case where the EDID service 582 determines that the device is valid / authenticated, the EDID service 582 can communicate to other services (e.g., a security service, a certificate authority service, etc.) that the device should be allowed to operate (or fully operate) within the system. Alternatively, if the EDID service 582 determines that the device is invalid, stolen, forged, not on-site, in the wrong plant, in the wrong geographical area, etc., the EDID service 582 can communicate to other services that the device is not allowed to operate within the system, and in some embodiments, can remotely disable the device, rendering it completely inoperable.

[0269] In this way, the EDID can be used to increase security by making it more likely that a device operating in a secure environment of a process plant is a device of known origin before a security certificate is issued allowing the device to connect to a secure network over which devices and services communicate across the computing structure 102. That is, an unauthenticated device will not be granted a certificate by a certificate authority. The EDID can also be used to prevent black market sales of devices (e.g., in violation of sanctions or trade restrictions), prevent theft, prevent reverse engineering, prevent forgery, etc., by prohibiting or otherwise blocking any off-site (not owned by the associated customer, not at the associated plant, not in the associated geographical area, stolen, etc.) devices from operating.

[0270] The specific implementation of EDIDs 510, 520, 530, 540, 560 can also facilitate improved commissioning of process plants. In an implementation, the information associated with each EDID can include information about the configuration of field devices and / or options installed on the field devices. In an implementation, the information associated with each EDID can include one or more device tags and / or one or more control modules associated with the field devices. Thus, the discovery / EDID service can determine, based solely on the EDID, which services should send data to and receive data from the field devices for a particular process, can configure I / O services for the field devices, can establish appropriate secure connections between the devices and other components, etc. In short, the use of EDIDs can allow process plants to produce products online in less time (and thus at less cost).

[0271] Fig. 5F An example method 590 for implementing the use of EDIDs in a process control system is shown. The method includes receiving data indicative of an EDID (block 592), querying a database for the received EDID (block 594), and determining from the query results whether to allow the device to operate in the system (block 596).

[0272] Other example safety features of NGPCAS

[0273] In addition to the above security features, the NGPCAS 100 can include one or more other security features that protect other functionality and aspects of the system 100, where at least some of the security features can be provided out-of-the-box and where at least some of the security features can be customized and adjusted, for example, by an enterprise agent, by a system provider agent, etc. Such security features can include, for example, role-based access control (RBAC) for various applications and human users, service principals, security policies, security audit logs (and optionally analysis and optimization of the data included therein), network security groups (e.g., by application, location, human user, and / or other categories), firewalls, and access control lists (ACLs), etc. In addition, secrets utilized by the system 100 (e.g., keys, certificates, etc.) can be stored in one or more secure vaults.

[0274] In addition, the resources of the system 100 can be protected in a hierarchical manner, such as in Figure 5Gas shown in the example resource security technique 599 shown. As previously discussed, resources can include hardware and / or software resources, such as components, clusters, nodes, services (e.g., configured containers), etc. At the single or individual resource level, each individual resource can be protected in a manner such as described above (e.g., based on its identity, using keys and certificates, etc.). At a higher level, resources can be grouped (e.g., in a manner such as described above), and each resource group can be secured and protected as a group (e.g., through group identity, keys, certificates, etc.). Resource groups can be defined and / or created based on any category, such as by location (e.g., local to a field device, at a remote location, in a computing fabric, etc.), by functionality, by time of day, etc. At a higher level, subscriptions to various individual resources and / or to various resource groups can be utilized such that only users who have subscribed to a particular resource or resource group can access that particular resource or resource group. That is, access to a particular resource or resource group can be limited to those users who have a subscription to it, thereby providing further security to system 100. Note that an individual resource can be included in one or more different resource groups and / or accessed via one or more different subscriptions. Additionally, note that the resource security technique 599 can be applied locally at the location where the field device is located, non-locally at other physical locations, and / or in a computing fabric as needed. Of course, other resource security techniques can be additionally or alternatively utilized in NGPCAS 100.

[0275] Additional architectural features of NGPCAS

[0276] Due to the decentralized and highly configurable nature of the computing architecture of the NGPCAS described herein, the NGPCAS for a particular enterprise can be configured or set up by the enterprise such that new types of data management and execution management can be performed within the computing architecture, enabling the enterprise to uniquely configure global or in-plant data flows and execution management in a way that was not possible with previous control systems. Specifically, the computing architecture of an enterprise with multiple physical plants or locations can be established in a hub-and-spoke configuration, where multiple different computing architecture "hubs" can be created to support various different physical locations or plants connected to the hubs via communication networks implementing communication "spokes". Each hub can have computing resources restricted to or implemented within a particular geographic or sovereign region. These regions can be, for example, a continent (e.g., North America or South America, Europe, Africa, etc.), a country (e.g., the United States, Russia, China, Australia, Germany, France, etc.), a state or defined region within a particular country (e.g., California, Florida, etc.), or any other geographic or geopolitical region. In such cases, the computing architecture hardware can be implemented in a cloud environment or physically located in or contained within a particular region (or a particular set of regions) to form a computing center at other physical locations. Each computing center can be connected to one or more physical locations or plants of the enterprise via the communication infrastructure described herein, which forms the spokes from the computing architecture center to the physical locations. In some cases, more than one computing architecture center can be connected to the same physical location, and each such computing architecture center can receive all or a subset of the data from that physical location. Additionally, in some cases, the computing architecture center can be connected to one or more physical locations within the same region as the center via one or more communication spokes and / or can be connected to physical locations in one or more regions different from the center via other communication spokes.

[0277] Fig. 6AFIG. 0 shows an example enterprise NGPCAS system 600 having a plurality of computing structure centers 602 located in various regions (in this case, national or public political regions (e.g., the European Union)) and connected to various physical locations via one or more communication spokes 603. In this example, the enterprise includes two computing structure centers 602A and 602B located in the United States, one computing structure center 602C located in Europe (e.g., one or more countries associated with the European Union (EU)), one computing structure center 602D located in Russia, and one computing structure center 602E located in Africa. Each of the computing structure centers 602 includes one or more terminal communication spokes 603, where each terminal communication spoke 603 leads from the center 602 to a physical location 604. As will be appreciated, the spokes 603 associated with a particular center 602 may connect the center 602 to different physical locations, which may be in the same region as the center 602 or in different regions. Additionally, if desired, one or more communication spokes 603I may be provided or configured to provide communication between two centers 602 for direct inter-center communication. In this way, data received from a particular physical location 604 at the first center 602 via a communication spoke 603 at the first center 602 may be routed via the inter-center spoke 603I to the second computing structure center 602. Similarly, communication from the first center 602 (such as control signals, data requests, configuration changes, etc.) may be sent by the first center to a particular physical location 604 by sending the data via the inter-center spoke 603I to the second center 602, and then the second center may provide the communication to the physical location 604 via a communication spoke 603 established between the second center 602 and the physical location 604. As Fig. 6A shown, a particular computing structure center 602 (such as center 602A) may, in some cases, include only terminal spokes 603 leading to physical locations 604 in the same region (e.g., the United States). Of course, in other cases, a particular computing structure center 602 (such as center 602B) may include terminal spokes 603 leading to physical locations 604 in multiple different regions (such as physical locations in both the United States and Europe). Similarly, in a case such as having centers 602B and 602C and physical location 604A, multiple different centers 602 may be connected to the same physical location 604 via different spokes.

[0278] Importantly, this hub and spoke configuration enables data and execution management to be configured and maintained separately at each compute fabric hub 602 such that an enterprise with physical locations in multiple different regions can comply with the various different laws or data governance rules of the physical location and / or the particular region in which the compute fabric hub 602 resides. For example, different regions such as the United States and Europe may have different data privacy, data export, and data management laws and regulations, and thus it may be important to separate and track different data sent to and stored at a particular compute fabric hub 602 in order to process and dispose of it in a manner compliant with the appropriate laws and regulations of the hub 602. However, these laws and regulations typically only apply to static data and not to dynamic data. Accordingly, the hub and spoke architecture described herein also enables data (all data or a subset of the data) collected by a device at a particular physical location to be managed by a set of data privacy laws associated with a particular region by enabling the collected data to be sent to and stored only at a compute fabric hub 602 located in the region where the data privacy laws and regulations will be applied. Thus, data collected at a physical location 604A in the EU can be sent directly to, for example, a compute fabric hub 602B in the United States without being stored at the EU hub 602C. In this case, a direct communication spoke 603A can be established between the hub 602B in the United States and the physical location 604A in the EU, and the data may or may not be sent to or stored in the EU hub 602C. However, in another case, data from a physical location 604B in the EU may first be sent via a spoke 603B to the EU hub 602C. However, the EU compute fabric hub 602C may immediately send the data via an inter-hub communication spoke 603I to the hub 602B in the United States without storing the data, thereby ensuring that the data is not subject to EU data laws and regulations.

[0279] Of course, the hub and spoke configuration described herein can also or alternatively be used to manage or direct execution and operational activities at various different hubs and / or at various different physical locations using the same concept. For example, different computing fabric hubs 602 can manage the execution of applications and services and provide or manage user or application authorization in different ways by storing and applying different sets of rules or policies to be implemented by each computing hub 602 at the physical locations 604 to which the hub 602 is connected. The ability of each computing fabric hub 602 to store and apply different data governance, application, and other system execution rules provides great flexibility in managing and storing data within an enterprise and in managing and controlling application execution in different ways at different physical locations 604 and different computing fabric hubs 602. Thus, even though each different hub 602 or physical location 604 is associated with the same enterprise, this feature enables the use of different configuration paradigms at each different hub 602 or even at each different physical location 604.

[0280] Generally speaking, to perform these data and execution management activities, the computing fabric for a particular hub 602 stores a set of rules, such as data governance rules, execution rules, access authorization rules, etc. (shown as components 610A, 610B, 610C, 610D, and 610E at hubs 602A, 602B, 602C, 602D, and 602E, respectively), which are then automatically implemented or applied by appropriate computing fabric components at hubs 602A through 602E to manage data flow, application and service execution, user and service authorization, etc. Additionally, the architecture provider / manager can provide an interface for each hub 602 to enable an enterprise (e.g., one or more authorized configuration engineers associated with the enterprise) to define, set, and store the data governance and execution rules 610 to be used at each hub 602.

[0281] Figure 6B is a diagram 620 showing an example system hierarchy associated with an enterprise using the NGPCAS described herein and showing the ways in which the various different components of the NGPCAS system are associated and can be implemented within the structural elements described herein. Specifically, as Figure 6B shown, diagram 620 includes three columns, with the rightmost column 622 including the software, hardware, and firmware components associated with the NGPCAS listed in a hierarchical grouping view, the middle column 624 indicating the physical or virtual execution location of the associated elements in column 622, and the leftmost column 626 indicating the purpose or operation of the elements in column 622. Thus, as Figure 6BAs shown, column 622 includes an application 630 that provides a customer or enterprise view of NGPCA (as shown in column 626), where the application 630 is stored in and executed within a computing structure in a cloud environment (as shown in column 624). The application 630 can include any customer- or enterprise-facing and accessible application, including, for example, one or more ATMP applications 632 for providing workflow tracking and security logs for one or more batch processes or production facilities, one or more enterprise monitoring applications 633 that provide a customer portal for existing functionality in the enterprise, one or more enterprise fleet management applications 634, and one or more utility applications 635 (such as IEE applications), where the enterprise fleet management applications provide and track the real-time health and inventory status of enterprise equipment and can make recommendations for changes, updates, etc. In addition, the application 630 can include one or more enterprise control applications 636 (which can include any of the process control elements described or mentioned herein, such as containerized control modules, containerized function blocks, enterprise or device twins, etc.). Similarly, the application 630 can include one or more operations applications 637, engineering applications 638, and data management applications 639. The operations applications 637 can include applications that enable insight and control of process operations, such as DeltaV Live applications, operator interface applications, alarm management applications, data historian applications, etc. Similarly, the engineering applications 638 can include control and graphical configuration applications for defining and configuring user interfaces for control routines and control operations. The data management applications 639 can include data exchange and data visualization applications to enable enterprise users to obtain access to and / or view data within the enterprise. Of course, any other desired applications (such as equipment maintenance applications) can be included in and supported within this level of the NGPCAS. As noted in column 626, the application 630 is user-facing and thus visible and directly used by authorized users of the enterprise.

[0282] In addition, as Figure 6B shown, the NGPCAS includes a set of application frameworks 640 that support and enable the applications 630 and, in this case, are implemented in a cloud environment that is at least a part of the computing structure used as the enterprise NGPCAS. The application frameworks 640 can include, for example, a framework 641 for providing, managing, and implementing role-based security (application access), database (such as event and alarm databases, historian, etc.) access, configuration, and support 642, a service mesh framework 643, a materials support database 644, business or other rules 645 to be applied by the applications 630, and a protocol support framework 646 that supports the use and conversion of communication protocols. The rules 645 can define regarding Fig. 6AThe data governance and application execution rules described above. Of course, the framework 640 described herein is merely an example set of frameworks that can be used and supported in the NGPCAS, and may also include or use other frameworks alternatively. In addition, although the frameworks 640 can be configured and accessed by an enterprise, these frameworks 640 are not directly user-facing, but rather support user-facing applications 630.

[0283] In addition, the NGPCAS of the diagram 620 includes one or more platforms 650, which can be implemented as a software-as-a-service (SaaS) platform (as shown in column 624) in a cloud environment of a computing structure to implement and support the application framework 640 and the application 630. The platform 650 may include, for example, a Kubernete (or other) container management and orchestration platform, an observability and platform monitoring platform (used by one or both of the enterprise or the architecture provider / manager), an identity and access management platform, a security management platform, a CI / CD pipeline platform, a feature promotion platform, a compliance and governance rule storage and implementation platform (such as regarding Fig. 6A the rules 610 described above), a cost and subscription tracking platform, etc. Of course, Figure 6B the platforms 650 listed or described in are merely examples and can be used to support various features of the NGPCAS described herein. However, other platforms may also be used or provided. In addition, the platform 650 does not have to be implemented as a SaaS platform. As will be understood, the platform 650 is managed by the architecture provider / manager using inputs from the enterprise.

[0284] In addition, as Figure 6B shown, the NGPCAS hierarchy includes a cloud support structure 660 for implementing the cloud environment as part of the computing structure. Specifically, the cloud environment support structure 660 includes, for example, the AZURE cloud operating system and ARC services that implement AKS or a deterministic runtime environment, as described herein. Of course, other cloud environment support structures or services may also be used or provided alternatively, and the NGCPAS described herein is not limited to the listed cloud support structure 660. Of course, as Figure 6BAs shown, the cloud environment 660 provides control, data, and management planes (via VPN or other communication connections) to edge devices 670, as shown in column 624, which are local to various different physical locations. The edge devices 670 can include, for example, I / O or other servers 672, data, networking, and storage servers 674 (such as data aggregators and / or VPN gateways), and local workload servers 676, which can be connected to local hardware 680, such as local controllers, field devices, and other local hardware, as shown in column 624. Of course, the edge components 672, 674, and 676, as well as local hardware such as controllers, I / O devices, and field devices, are local to generate, measure data, or provide local access to data and perform other activities such as control, maintenance, and support activities.

[0285] As will be understood, Figure 6B the hierarchical structure of shows a way in which all the required applications, services, containers, microservices / MEEE / granules, platforms, software, etc. that can be implanted as part of what is described herein as NGPCAS can be provided to an enterprise to provide a complete process control and application service system, the components of which are distributed within a computing structure (shown in this case as a cloud environment) and at one or more physical locations or facilities. More specifically, Figure 6B the diagram 620 of shows the way in which user-facing applications (including control applications, maintenance applications, data storage and tracking applications, process control and configuration applications, management applications, workflow management applications, etc.) can be layered onto and incorporated into NGPCAS operating in an execution environment.

[0286] Structural and supporting features of NGPCAS

[0287] As will be appreciated, the NGPCAS described herein provides its software-implemented components or enables such software-implemented components to be highly configurable, transportable, and editable, because most of the control and support components (e.g., control modules, containers, etc.) are located in and execute within a computing fabric without being bound to a particular or predetermined computer hardware (e.g., a particular server, processor, computer node, etc.). This feature enables system setup and configuration activities to be performed more quickly and easily than in traditional control systems, because it enables enterprise system owners or administrators to store configuration components for their systems in the computing fabric, access these components from any location, copy these components to create or add additional control system architectures associated with, for example, new factories or new physical locations added by the enterprise, new hardware installed at existing physical locations, etc., without specifying the location or details of the computer hardware for implementing the additional configuration components. Additionally, this architecture enables the architecture provider / manager (also referred to herein as the "APM") to concurrently oversee the operation of multiple different enterprise systems during their operation, which enables the APM to provide general and specific support for the different enterprise systems. For example, the APM may monitor and capture quality of service statistics and / or other data related to or defining the operation of various software and hardware components operating within the computing fabric of various different enterprise systems while these enterprise systems are executing to perform control and manufacturing activities. The APM may provide these measures to different enterprise systems and may upgrade or change the configuration or use of the computer equipment within the computing fabric, such as by adding additional computing fabric computer equipment (nodes, servers, computers, processors, etc.), by reducing computing fabric equipment (nodes, servers, computers, processors, etc.), by changing computing fabric equipment (such as using a processor with a higher processing speed, larger memory, etc.), or by taking other actions within the computing fabric based on quality of service metrics to ensure better quality of service or to reduce costs in cases where the quality of service meets expectations (e.g., meets the quality of service metrics promised or guaranteed by a particular enterprise license).

[0288] APM can also provide or implement various data analysis applications on a variety of different enterprise systems to recommend changes to those systems, which can improve the operation of those systems. In addition, APM can aggregate data from different enterprises and analyze that data to detect trends, problems, etc., and then provide general guidance for specific enterprise systems based on that analysis. APM can, for example, use data analysis to compare the operation of control systems for the same or similar products or manufacturing steps from the same or different enterprise systems to determine which systems or which system configurations are operating better or worse than each other, which are operating better or worse than an average or baseline system, etc. Then, APM can use other data analysis to determine why a particular system is operating better or worse, such as determining whether the variation is related to the presence of different equipment, different control routines, different interactions or configuration settings of virtual control components or actual control system hardware, etc. Then, APM can generate general guidance or best practices for one or more enterprise systems based on the knowledge determined in these analyses.

[0289] In addition, the architecture described herein enables the faster development and testing of components to be added to control systems because the architecture enables the development and provision of control or other system containers or products in a container registry or product registry for download and implementation by enterprise systems at the will and timing of the enterprise systems or enterprise system administrators. Feedback on the operation of the containers or products from these downloads and implementations can also be automatically provided back to the developers from the enterprise's computing infrastructure as part of the development cycle to test, upgrade, and change the containers or products. The architecture allows or results in a faster development cycle because it provides for the faster implementation of new features or products and provides automatic feedback on the operation of new or changed components. However, the development is still carried out and implemented in a way that enables each enterprise operator or administrator to control when new containers or products are downloaded into their systems and implemented in their systems.

[0290] Figure 7 An overall NGPCAS architecture 700 is shown, which includes a plurality of different enterprise systems 702 (Enterprise 1), 704 (Enterprise 2)......706 (Enterprise n), which are connected to an architecture provider / manager (APM) 710. Specifically, each of the enterprise systems 702, 704, 706 implements NGPCAS as described herein, including a computing infrastructure and factory hardware at one or more locations (i.e., physical locations), where gateway devices, I / O devices, and field devices are located at the one or more locations to perform manufacturing or factory automation processes. As Figure 7As shown in the example system, enterprise 702 includes a computing fabric 720 connected to two physical locations 722A and 722B, which may be, for example, factories, buildings, regions, or other physical locations where gateways, I / O, and field devices are located to perform processes such as factory automation or manufacturing processes. Similarly, the computing fabric 720 of enterprise 702 includes multiple different sets of containers as described herein for implementing control and related support features for the equipment at locations 722A and 722B. Specifically, in Figure 7 the example, the computing fabric 720 includes one or more sets of containers 726A that monitor and control the physical equipment at location 722A and one or more sets of containers 726B that monitor and control the equipment at location 722B. Of course, as described herein, the containers 726A and 726B in the computing fabric 720 can be arranged in any desired manner and using any other desired configuration, and do not necessarily need to be separated or grouped based on the physical locations they control. In addition, enterprise 702 may include one or more user interfaces 730 that are connected to and interface with the computing fabric 720 using one or more APIs 732 within the computing fabric 720. The user interfaces 730 and APIs 732 operate as described herein to enable the owners, operators, configurators, etc. of enterprise 702 to perform configuration, monitoring, and control activities regarding the physical location 722 in the manner previously described herein using the containers 726.

[0291] Similarly, as Figure 7 shown, enterprise 704 includes a computing fabric 740 connected to multiple physical locations 740 (including installed locations 740A through 740C). Physical location 740D is shown in dashed lines to indicate that it will be added using the configuration applications and techniques described later herein. Of course, as Figure 7 shown, the computing fabric 740 of enterprise 704 includes a set of containers 750 that are installed in and execute within the computing fabric 740 to monitor, control the equipment at physical location 742, and provide support services for that equipment. In addition, a user or operator associated with enterprise 704 can interface with the computing fabric 740 via user interface 756 and API 758 to perform monitoring, configuration, and operation activities regarding the containers 750 within the computing fabric 740, such as visualizing and controlling the operation of a control system implemented or performed by the containers 750 to control the equipment at physical location 742. Of course, the owners, operators, managers, etc. of enterprise 704 can interface with the computing fabric 740 in any desired manner as described herein to perform any configuration, control, or monitoring functions for enterprise 704.

[0292] In addition, any other number of enterprises (such as Figure 7The dots in [n] each include a computing structure 760 coupled to multiple different physical locations 762A through 762n, and include a container or grouping of containers 770 to perform control and support activities regarding locations 762A through 762n. Again, enterprise 706 may enable a user to interface with computing structure 760 using one or more user interfaces 772 and one or more APIs 774, as described herein.

[0293] As Figure 7As shown, the APM 710 is connected to the computing fabric 720, 740, 760 of each of the enterprises 702, 704, 706 via a direct secure communication link 780. The communication link 780 can be configured to operate with separate security in any of the ways described herein, such as using a separate VPN for each of the computing fabrics 720, 740, 760. Importantly, the communication link 780 provides the APM 710 with information about the ongoing operations, configurations, and associated information of each of the containers, modules, programs, etc. within each of the computing fabrics 720, 740, and 760. Thus, in this way, the APM 710 has a direct and continuous connection to the computing fabrics of each of the enterprises 702, 704, and 706 and can use this connection to start, allocate, remove, reduce, or change the computer resources within each of the computing fabrics 720, 740, 760 of each of the enterprise systems 702, 704, 706. The APM 710 can use the direct and secure connection 780 to license, provide, configure, or otherwise establish sufficient computer equipment in the computing fabric for each of the enterprise systems 702, 704, 706 based on the licenses purchased by the enterprise systems 702, 704, 706. In some cases, the APM 710 can license or use computer equipment in the cloud, such as computer equipment provided by a third-party cloud computing provider (e.g., Microsoft Azure). In other cases, the APM 710 can have its own computer resources at one or more locations owned or operated by the APM 710, and the APM 710 uses these computer resources to provide computing resources for the computing fabrics 720, 740, 760 of the enterprises 702, 704, 706. In other cases, the enterprises 702, 704, 706 can provide some or all of the computer resources used in the computing fabrics 702, 704, 706 and enable these resources to be managed by the APM 710. For example, the area 779 within the computing fabric 740 of enterprise 704 marked with a dashed line indicates that the elements executed in this part of the computing fabric 740 are executed on computer hardware owned by enterprise 704, located at the enterprise, or provided by the enterprise, and can be, for example, computer hardware at one of the locations 740A - 740D or at a different facility associated with enterprise 704.

[0294] As will be appreciated, the APM 710 has a direct and secure connection to the operational network and computing fabric of each of the enterprises 702, 704, 706, etc. that the APM 710 manages or supports. Thus, the APM 710 can simultaneously control the allocation of computer facilities or resources for each computing fabric of any supported enterprise. Additionally, the APM 710 can store and execute software or data analysis modules 782 that analyze operational data such as metadata from each of the computing fabrics 720, 740, 760 to compute or determine various quality of service measurements or statistics for each of the computing fabrics 720, 740, and 760 of the enterprises 702, 704, and 706. Specifically, the data analysis module 782 can determine communication latency, CPU usage, and other computing operation statistics that indicate or define the quality of service provided or obtained within any one of the computing fabrics 720, 740, 760 by the computer hardware used in the computing fabrics 720, 740, 760 (regardless of who provides the computer hardware or where the computer hardware is physically located). Such data analysis or quality of service measurements can be used by the APM 710 to make changes to the underlying configuration of the computing fabrics provided or managed by the APM 710 in order to increase or change the quality of service provided to an enterprise or a part of an enterprise, for example, to meet expected, guaranteed, or permitted quality standards, such as those enforced by agreements between the APM 710 and the respective enterprise owners of the enterprises 702, 704, and 706. The APM 710 can make these changes by making configuration changes within the computer hardware of the computing fabrics 720, 740, 760 via the secure connection 780, and / or can interface with any third-party provider of the computer hardware or computing facilities used in the computing fabrics 720, 740, and 760, such as an interface with a cloud computing provider like Microsoft Azure. Of course, the APM 710 can change the configuration, quantity, identity, or any other configuration component of the computer equipment used in or licensed from a third party in order to provide the computing fabrics 720, 740, 760 in any desired manner. In this way, the APM 710 has continuous control over the quality of service and configuration of the computer equipment provided or licensed by the APM 710 and provided to the enterprises 702, 704, 706, which enables the APM 710 to maintain an adequate or expected quality of service for control systems used or implemented in those enterprises.

[0295] Similarly, the APM 710 can interface directly with user interfaces (such as user interfaces 730, 756, and 772) associated with different enterprises 702, 704, 706 so that enterprise managers at the user interfaces 730, 756, 772 can obtain additional licenses for additional computing infrastructure equipment, initiate the additional computing infrastructure equipment, and provide additional or new software products or containers (developed by the APM 710 or by third-party developers) to the enterprise owners or managers.

[0296] In any case, the APM 710 can analyze the data it receives from the computing infrastructures 720, 740, 760 in any desired manner and at any grouping level. For example, as Figure 7 shown in the chart 790 of, the APM 710 can obtain and accumulate data from the various different computing infrastructures 720, 740, and 760 of the enterprises 702, 704, and 706 and analyze the data from all these enterprises together to obtain an overall measurement of the quality of service provided by the APM 710. The combined enterprise data is shown by the box 792 in the chart 790. Additionally, the APM 710 can analyze the data from each computing infrastructure 720, 740, 760 separately to provide per-enterprise statistics or quality of service measurements and can communicate separately with each enterprise to provide quality of service measurements or other statistical measurements associated with the entire enterprise. Such measurements or data are shown by the charts 794A, 794B, and 794C for the enterprises 702, 704, and 706 respectively. Furthermore, the APM 710 can perform or determine analytical measurements or other analyses (such as quality of service measurements) on a per-enterprise basis on a per-physical location basis (as Figure 7 shown in the chart 796 of), on a per-control system basis, on a per-container set basis, on a per-container basis, or in any other manner or based on any other grouping of components within or associated with the containers, modules, programs, control systems, etc. executing in the computing infrastructures 720, 740, 760. Of course, the APM 710 can prepare or perform the analysis in any other desired manner or perform analyses associated with any other grouping of factory hardware, software, containers, computing infrastructure hardware, etc. If desired, the enterprise owner can agree to or be provided with different reports based on various predetermined or desired groupings of the hardware and / or software elements (at any level) within the computing infrastructure of the enterprise.

[0297] The APM 710 can also perform other types of analysis on any grouping of data associated with one or more of the enterprises to which the APM 710 is connected, and can provide suggestions to the enterprises regarding potential changes to be made within the enterprises to improve performance, quality, etc. within the enterprise or a component of the enterprise (such as at a physical location, a group of control systems, a control loop, a group of control loops with similar functions, etc.). For example, the APM 710 can analyze the operation of one or more groupings of hardware, software, control systems, control loops, containers, etc. implemented within one or more enterprises to determine changes that can be made to improve control within the enterprise. As a specific example, the APM 710 can analyze data related to the operation of a control loop or a group of control loops within an enterprise (such as a control loop for controlling specific hardware at one or more plant locations), and can analyze timing signals, process variable measurements, response times, control loop statistics, etc. to determine whether one or more changes to the analyzed components can provide better performance in some way. The APM 710 can use the results of the analysis to suggest various hardware and / or software configuration changes, operations to be performed, or actions to be taken (such as running an adjustment process, etc.) to provide better control operations, such as better control of signal timing, fluctuations, product quality, operating costs, etc. In some cases, the APM 710 can suggest new or different types of control or control loop algorithms, new adjustments to process control equipment or control loops, additional control algorithms or different control algorithms that may be useful, different equipment that may be used, different control hardware or software configurations, such as changing the fixing or assignment of containers or groups of containers executed within a computing structure. Similarly, the analysis can be performed at any level, such as at the enterprise level, physical plant or location level, control loop level, control module level, container level, container group level, computer equipment level, etc. Of course, the APM 710 can use data from multiple different enterprises or control systems, from a single enterprise, from a subset of components within an enterprise, etc. to perform other types of data analysis. In some cases, the APM 710 (which has access to data from multiple different enterprises) can look for commonalities or differences between the operations at different locations or different hardware within the same enterprise or at different locations or hardware within different enterprises to look for commonalities or differences in performance. Then, the APM 710 can perform further data analysis to determine the sources or causes of those differences, including differences that make control systems (control loops, control plants, etc.) operate better or worse than each other or better or worse than a baseline or average. Then, the APM 710 can provide the analysis results to the enterprises for making changes. Specifically, the APM 710 can return a report or analysis to the enterprise so that the enterprise can consider making changes to the control systems implemented by the enterprise. In some cases, the APM 710 can provide one or more products or containers for the enterprise to use to implement the suggested changes.

[0298] In addition, as shown in Figure 7 for enterprise 704, each enterprise may include a configuration system 800 having one or more configuration databases (which may be one or more different computer databases or memories) and one or more configuration applications. The configuration databases store configuration elements for the enterprise or for parts of the enterprise, and the configuration applications enable users to view, change, and manipulate the configuration databases to effect and implement configuration changes for the enterprise, including configuration changes within elements executed within the enterprise's computing fabric and within or associated with hardware within one or more physical locations of the enterprise. The configuration databases of the configuration system 800 may store, for example, a library of elements (such as containers, modules, applications, products, etc.) used within the enterprise, and may store information defining the identity and configuration of each element, group of elements, container, control system, etc., currently operating within the computing fabric or within devices at the physical locations of the enterprise. Additionally, the configuration applications may enable an enterprise owner or manager to view the configuration of any element of the enterprise and make changes thereto, including making changes to control systems, adding or deleting logical or physical equipment or components (and even physical locations) from the enterprise system, changing the location or fixation of various different resources or components (such as containers) within the computing fabric, adding new field devices, I / O devices, etc. Further, the applications of the configuration system may effect configuration changes by downloading or changing logical or software elements (such as containers) within devices within the computing fabric or at physical locations in accordance with the user's changes upon the user's instruction. Since the control elements within the computing fabric are generally not bound to specific computer hardware within the computing fabric, the configuration system 800 can easily make changes, deletions, additions, etc., to the elements actually operating within the computing fabric without the user specifying exactly where to install those components, enabling the user to specify the logical configuration changes to be made and press a button to effect those changes in the actual hardware currently operating within the computing fabric. The underlying computing fabric management system may then locate (or assign) the computer hardware for the components effecting the changes or the new components and effect the changes seamlessly for the user. Although the configuration system 800 is shown as stored in and executed within the enterprise's computing fabric, one or more components of the configuration system 800 may be located in computer hardware at one or more physical locations of the enterprise, in off-site computing fabric resources, distributed or shared between the computing fabric at one or more physical locations and off-site or licensed computing fabric hardware, stored in dedicated machines within the computing fabric or at one or more physical locations, or in any other manner.

[0299] Fig. 8AThe operation of the configuration system 800 in an enterprise is shown in more detail to show the ways in which an enterprise owner, operator, or other user can use the configuration system 800 to control and configure changes to an enterprise or any part thereof in a quick and easy-to-use manner. In fact, in some cases, configuration changes can be provided, in essence, via a one-click push mechanism that can be used to install additional software or new software components or upgrade the software within the computing fabric of the enterprise. More specifically, Fig. 8A a configuration system 800 is shown that can be used at, for example, one of the enterprises (such as Figure 7 enterprise 704) to add, change, or otherwise alter the configuration and operation of one or more process control system elements within or associated with the enterprise in an easily achievable manner.

[0300] As will be seen, Fig. 8A a configuration system 800 for an enterprise is shown communicatively coupled to an APM 805 and a product / container registry 807. Generally speaking, the enterprise configuration system 800 is located within and executes within the enterprise to which it belongs, such as within the computing fabric of the enterprise to which it belongs. However, some or all of the configuration system 800 can be stored and executed in hardware (which may or may not be part of the enterprise computing fabric) at one or more physical locations of the enterprise, at one or more dedicated hardware locations for the enterprise external to the computing fabric, or at any other location. However, importantly, the enterprise's configuration system 800 is connected to or integrated into the enterprise's computing fabric so as to be able to make changes directly to elements within the enterprise's computing fabric using the management fabric of the computing fabric. As Fig. 8A shown, the configuration system 800 includes a configuration database 801, one or more configuration applications 802, and a configuration execution engine 804 communicatively coupled together. Of course, the configuration database 801 stores the configuration information of the enterprise, as currently configured. The configuration database can include one or more physical databases that house data and relationships, such as the configuration of control modules and the relationships between them. Importantly, the configuration applications 802 can include one or more user interface applications that generate one or more user interfaces, such as the user interface 822 shown in more detail in Figure 8B which enables a user (such as a configuration engineer at the enterprise) to take different actions regarding changing or upgrading the control system or any of its elements or components. As will be understood, the user interface 822 can be displayed on any computer of the enterprise and can be provided to off-site computers associated with the enterprise via an API that was previously discussed but not shown in Fig. 8A . Additionally, the configuration engine 804 interfaces with a runtime system (such as the orchestrator and associated applications described herein) to effect configuration changes within the enterprise (such as within the computing fabric of the enterprise).

[0301] As Fig. 8A As shown, the configuration system 800 is connected to the APM 805 via communication connections such as those shown and described with respect to Figure 7 and can coordinate with the APM 805 to make certain types of configuration changes, such as permitting new software or hardware components from the APM or a third-party managed or licensed computing fabric, reducing, increasing, or changing the hardware configuration within the computing fabric provided by the APM (or third-party hardware provider), etc. Additionally, the configuration system 800 is connected to a product or container registry 807, and the configuration system can obtain new components, such as new containers, products, upgrades, etc., from the product or container registry. The configuration system 800 can access the product registry (which is outside the enterprise's computing fabric) using any of the security features discussed previously. Generally speaking, the configuration system 800 includes components that interact with each other and with the APM 805 and the product / container registry 807 to enable a user to specify and implement configuration changes in the enterprise. These configuration changes can include adding new physical locations, adding new or changed computers or field device hardware (e.g., field devices, I / O devices, gateway devices, etc.) at new or existing physical locations, adding, deleting, or changing logical components (e.g., containers, control modules, control routines, monitoring routines, etc.) within the enterprise's computing fabric, changing fixed or other specified relationships between logical components within the computing fabric and / or between logical components and specific computing fabric hardware, etc.

[0302] As an example, one or more configuration applications 802 in the configuration system 800 can be used to view the current configuration of various different elements of the enterprise (including both hardware and software elements). Additionally, one or more configuration applications 802 can be used to enable a user to make changes to the configuration of the enterprise, such as adding new hardware and / or software elements, changing one or more hardware or software elements, deleting one or more hardware or software elements, changing the way one or more software elements such as containers are fixed to other software or hardware elements, adding new physical locations or hardware at one or more physical locations, changing the configuration of elements at one or more physical locations, specifying or changing the configuration of computer hardware within or associated with the computing fabric of the enterprise or a part of the enterprise, and / or implementing any other desired configuration changes.

[0303] In one example, as Figure 8BAs shown in more detail, the user interface 822 can provide a configuration display screen that enables a user to view and make changes to the configuration of components within an enterprise. In this example, the display screen 822 includes a configuration hierarchy section 834 and a diagramming or programming section 836 that a configuration engineer or other user can use to graphically represent one or more configuration components and / or enable a configuration engineer (or other authorized user) to graphically program or make changes to the enterprise configuration at any level. For example, a user can make changes to the configuration at the enterprise level (i.e., across the entire enterprise), at the sub-enterprise level (such as at one of the physical locations of the enterprise, at any grouping of components within the computing structure of the enterprise, etc.).

[0304] As Figure 8B shown, the hierarchy section 834 can include a hierarchy display that shows the various different configuration components (or any other grouping of components) of the enterprise at the various levels or sub-levels of the enterprise to show the configuration components of the enterprise that currently exist in an organized and easily locatable manner. For example, the enterprise hierarchy 834 can include a library section 840 that includes a storage of configuration components such as copies of control modules, control routines, function blocks, containers, and / or any other configuration component stored as a library component in a configuration database. These library components can be copies or generic versions (i.e., uninstantiated versions) of control components that exist in the enterprise system (such as at one of the physical locations of the enterprise or in the computing structure). In addition, the hierarchy section 834 can include a configuration database section 841 for accessing the actual configuration database of the enterprise, a physical network section 842 that includes information about each deactivated node or location and each currently debugged physical location of the enterprise 843. As shown for physical location 1, each physical location can include configuration and identifier information about the gateway, I / O devices, field devices, communication networks, etc. at that physical location. Such components can include, for example, the I / O devices and gateway devices at each physical location, the field devices and communication devices set at each physical location, databases, communication structures, etc. In addition, other physical I / O networks such as wireless networks can be listed under section 844. In addition, the hierarchy section 834 can include a hierarchy of installed configuration components, such as configuration components associated with each physical location, with each control routine or control module in a set of control routines or control modules, or any other control structure, etc.

[0305] In addition, the hierarchical structure 834 may include an indication of control logic or control elements (e.g., containers) in the computing structure under the computing structure portion 845. Elements in the computing structure may include, for example, logical or virtual controllers, control modules, containers, etc., and may indicate the manner in which these elements are fixed or otherwise associated or grouped (e.g., assigned) with each other during runtime. The control elements may also include or show digital twins associated with iOS devices or field devices within various locations, and may include any grouping or configuration grouping of containers or other elements. Similarly, other groupings of containers or control elements in the computing structure may be listed, such as assigned I / O and third-party containers. Similarly, the configuration hierarchical structure 834 may show support elements, such as one or more batch or continuous histories, batch executors, recipes, advanced control elements, data analysis programs or software (such as artificial intelligence (AI) programs or algorithms), monitoring software, etc., which are bound to and operate within an enterprise (such as within the computing structure of an enterprise). Of course, it should be understood that the user may drill down into each part of the hierarchical structure 834 to view or access more information and details about these elements and the sub-elements listed therein.

[0306] The diagram or programming area 836 of the display 822 can be used to add, change, delete, reconfigure, program, and / or otherwise create configuration elements to be installed within an enterprise (such as within the computing structure of an enterprise or within devices at one or more physical locations of an enterprise). Specifically, the user can select and view one or more elements of the hierarchical structure 834 and place these elements (or copies thereof) in the programming area 836. Then, the user can graphically make changes to these elements to indicate the changes to be made to the configuration of these elements. In other cases, the user can add or copy library elements within the hierarchical structure portion 834 to the programming area 836 and then can edit these elements to create new configuration elements for a control system within the enterprise. In other cases, the user can download or obtain one or more new configuration elements from an external source or database (such as from the product / container registry 807). Of course, the configuration application 802 can also enable the user to add, change, delete, or otherwise modify configuration elements in any other way.

[0307] For another example, the user interface 822 may provide a pop-up window 850, which can display various actions that can be taken by a configuration engineer or user in the diagram or programming area 836 to perform configuration activities. Specifically, the window 850 may include a copy button 852, an add button 854, and an upgrade button 856, an assign button 858, an import new hardware button 860, a change button 862, a deploy button 864, an implement button 866, etc. While Figure 8BWindow 850 shows these various specific buttons associated with the specific configuration actions to be taken, but window 850 may provide or list other configuration actions that can be enabled via pop-up window 850. In addition, display 822 may enable these or other configuration actions via other types of inputs or commands, such as using drop-down menus, radial buttons, new screens, drag-and-drop actions, etc.

[0308] In any case, a user such as a configuration engineer of an enterprise can access or select some elements in enterprise hierarchy 834, such as library elements or actual configuration elements, and can display or copy these elements to configuration screen area 836 using, for example, copy button 852. Then, the user or configuration engineer can edit these elements, which can be, for example, control modules and entire control systems, containers, container groups, etc., and can assign these edited or new elements...

Claims

1. A method performed by a process control or automation system, the method comprising: performing, by the process control or automation system, a first authentication and / or authorization of the identity of an instantiated micro-encapsulated execution environment (MEEE) to communicate with a physical device that performs a physical function utilized in the control of an industrial or automation process provided by an enterprise; performing, by the process control or automation system, a second authentication and / or authorization of the identity corresponding to the physical device to communicate with the instantiated MEEE; and granting, when both the identity corresponding to the physical device and the identity of the instantiated MEEE are authenticated and / or authorized, permission for the instantiated MEEE and the physical device to be communicatively connected, thereby delivering information between the instantiated MEEE and the physical device for controlling at least a portion of the industrial or automation process.

2. The method according to claim 1, wherein: the first authentication and / or authorization of the instantiated MEEE does not include authorization of the instantiated MEEE; and the second authentication and / or authorization of the identity corresponding to the physical device does not include authorization of the identity corresponding to the physical device.

3. The method according to claim 1, wherein: the first authentication and / or authorization of the instantiated MEEE does not include authentication of the instantiated MEEE; and the second authentication and / or authorization of the identity corresponding to the physical device does not include authentication of the identity corresponding to the physical device.

4. The method according to claim 1, wherein: the first authentication and / or authorization of the identity of the instantiated MEEE includes authenticating the identity of the instantiated MEEE and authorizing the identity of the instantiated MEEE in response to the authentication of the identity of the instantiated MEEE; and the second authentication and / or authorization of the identity corresponding to the physical device includes authenticating the identity corresponding to the physical device and authorizing the identity corresponding to the physical device in response to the authentication of the identity of the instantiated MEEE.

5. The method according to claim 1, wherein the identity of the instantiated MEEE and the identity corresponding to the physical device are unique identities within the process control and automation system.

6. The method according to any one of claims 1 to 5, wherein the identity corresponding to the physical device is the identity of the physical device.

7. The method according to any one of claims 1 to 5, wherein the identity corresponding to the physical device is the identity of an intermediate device communicatively disposed between the physical device and the instantiated MEEE.

8. The method according to claim 7, wherein the intermediate device is a gateway.

9. The method according to the previous claim, wherein the physical device and the gateway are disposed at a first geographical location, and the instantiated MEEE is executed on a hardware platform disposed at a second geographical location.

10. The method according to the preceding claim, wherein the physical device is included in a plurality of physical devices, the plurality of physical devices being disposed at the first geographical location and communicatively connected to the gateway.

11. The method according to claim 7, wherein: The process control or automation system further includes I / O hardware communicatively disposed between the physical device and the instantiated MEEE; The physical device is physically connected to a physical I / O interface included in the I / O hardware; The combination of the physical device and the physical I / O interface is a physical component uniquely identified in the process control or automation system; and The physical component is the intermediate device.

12. The method according to any one of the preceding claims, wherein: The first authentication and / or authorization of the identity of the instantiated MEEE communicating with the physical device is based on the identity corresponding to the physical device; and The second authentication and / or authorization of the identity corresponding to the physical device communicating with the instantiated MEEE is based on the identity of the instantiated MEEE.

13. The method according to any one of the preceding claims, The method further includes communicatively connecting the instantiated MEEE and the physical device via a secure point-to-point (PTP) or peer-to-peer (P2P) connection based on the granted permission, the instantiated MEEE being the first endpoint of the secure PTP or P2P connection, and one of the physical device or an intermediate device communicatively disposed between the instantiated MEEE and the physical device being the second endpoint of the secure PTP or P2P connection; and wherein: The first authentication and / or authorization of the identity of the instantiated MEEE includes authenticating and / or authorizing the identity of the instantiated MEEE to communicate with one of the physical device or the intermediate device via the secure PTP or P2P connection, and The second authentication and / or authorization corresponding to the identity of the physical device includes authenticating and / or authorizing the identity of one of the physical device or the intermediate device to communicate with the instantiated MEEE via the secure PTP or P2P connection.

14. The method according to any one of the preceding claims, The method further includes communicatively connecting the physical device and the instantiated MEEE based on the granted permission via a secure PTP or P2P connection and via at least one of another secure PTP or P2P connection, a secure point-to-multipoint (PTM) connection, or a secure multipoint-to-multipoint (MTM) connection; and wherein: The first authentication and / or authorization of the identity of the instantiated MEEE includes authenticating and / or authorizing the identity of the instantiated MEEE to communicate via one of: the secure PTP or P2P connection, or at least one of the other secure PTP or P2P connection, the secure PTM connection, or the secure MTM connection; and The second authentication and / or authorization corresponding to the identity of the physical device includes authenticating and / or authorizing the identity of the physical device or one of the intermediate devices communicatively arranged between the instantiated MEEE and the physical device to communicate via one of the following: the secure PTP or P2P connection, or at least one of the other secure PTP or P2P connection, the secure PTM connection, or the secure MTM connection.

15. The method according to any one of claims 13 to 14, wherein the secure PTP or P2P connection is a secure, encrypted PTP or P2P connection.

16. The method according to the preceding claim, wherein the secure, encrypted PTP or P2P connection is a virtual private network (VPN).

17. The method according to the preceding claim, wherein the VPN is a point-to-point VPN that only specifically serves one of the physical device or the intermediate device and the instantiated MEEE.

18. The method according to any one of the preceding claims, wherein: the method further includes communicatively connecting the instantiated MEEE and the physical device via a plurality of virtual private networks (VPNs) based on the granted permission; the first authentication and / or authorization of the identity of the instantiated MEEE includes authenticating and / or authorizing the identity of the instantiated MEEE to communicate with the physical device via a first VPN among the plurality of VPNs; and the second authentication and / or authorization corresponding to the identity of the physical device includes authenticating and / or authorizing the identity of the physical device or the identity of the intermediate device to communicate with the instantiated MEEE via a second VPN among the plurality of VPNs.

19. The method according to the preceding claim, wherein there is at least one of the following cases: the plurality of VPNs includes at least two nested VPNs, or the plurality of VPNs includes at least two mutually exclusive VPNs.

20. The method according to any one of claims 13 to 19, wherein the secure PTP or P2P connection is a secure PTP connection.

21. The method according to any one of claims 13 to 19, wherein the secure PTP or P2P connection is a secure P2P connection.

22. The method according to any one of the preceding claims, wherein: the instantiated MEEE is included in a plurality of instantiated MEEEs of the process control or automation system; and the method further includes respectively authenticating and / or authorizing the corresponding identities of each of the plurality of instantiated MEEEs to communicate with at least one of the following: a corresponding physical device, a corresponding intermediate device communicatively arranged between the corresponding physical device and the corresponding instantiated MEEE, or a corresponding other instantiated MEEE.

23. The method according to claim 22, wherein the corresponding authentication and / or authorization of the corresponding identity of at least one instantiated MEEE included in the plurality of instantiated MEEEs does not include authorizing the corresponding identity of the at least one instantiated MEEE.

24. The method according to claim 22, wherein the corresponding authentication and / or authorization of the corresponding identity of at least one instantiated MEEE included in the plurality of instantiated MEEEs does not include authenticating the corresponding identity of the at least one instantiated MEEE.

25. The method according to claim 22, wherein the corresponding authentication and / or authorization of the corresponding identity of at least one instantiated MEEE included in the plurality of instantiated MEEEs includes: authenticating the corresponding identity of the at least one instantiated MEEE; and authorizing the corresponding identity of the at least one instantiated MEEE in response to the authentication of the corresponding identity of the at least one instantiated MEEE.

26. The method according to any one of the preceding claims, wherein: the physical device is included in a plurality of physical devices; and the method further includes respectively authenticating and / or authorizing the identity of each physical device in the plurality of physical devices or the identity of the corresponding intermediate device corresponding to each physical device to communicate with the corresponding instantiated MEEE.

27. The method according to claim 26, wherein the corresponding authentication and / or authorization of the identity of each physical device or the identity of the corresponding intermediate device does not include authenticating the identity of each physical device or the identity of the corresponding intermediate device.

28. The method according to claim 26, wherein the corresponding authentication and / or authorization of the identity of each physical device or the identity of the corresponding intermediate device does not include authorizing the identity of each physical device or the identity of the corresponding intermediate device.

29. The method according to claim 26, wherein the corresponding authentication and / or authorization of the identity of each physical device or the identity of the corresponding intermediate device includes: authenticating the identity of each physical device or the identity of the corresponding intermediate device; and authorizing the identity of each physical device or the identity of the corresponding intermediate device based on the authentication of the identity of each physical device or the identity of the corresponding intermediate device.

30. The method according to any one of the preceding claims, wherein: the first authentication and / or authorization of the identity of the instantiated MEEE includes authenticating and / or authorizing the identity of the instantiated MEEE to enable at least one of sending communication or receiving communication within the process control or automation system; or The second authentication and / or authorization corresponding to the identity of the physical device includes authenticating and / or authorizing the identity corresponding to the physical device to enable at least one of sending communications or receiving communications within the process control or automation system.

31. The method according to the preceding claim, wherein: Authenticating and / or authorizing the identity of the instantiated MEEE to enable at least one of sending communications or receiving communications within the process control or automation system includes: authenticating and / or authorizing the identity of the instantiated MEEE to enable at least one of sending communications with a first set of nodes of the process control or automation system or receiving the communications, without authorizing the identity of the instantiated EE to enable at least one of sending communications with a second set of nodes of the process control or automation system or receiving the communications; The first set of nodes includes the physical device or an intermediate node communicatively disposed between the instantiated MEEE and the physical device; and The second set of nodes includes at least one of another instantiated MEEE or another physical device.

32. The method according to any one of claims 30 to 31, wherein: Authenticating and / or authorizing the identity corresponding to the physical device to enable at least one of sending communications or receiving communications within the process control or automation system includes: authenticating and / or authorizing the identity corresponding to the physical device to enable at least one of sending communications with a third set of nodes of the process control or automation system or receiving the communications, without authorizing the identity corresponding to the physical device to enable at least one of sending communications with a fourth set of nodes of the process control or automation system or receiving the communications; The third set of nodes includes the instantiated MEEE; and The fourth set of nodes includes at least one other instantiated MEEE.

33. The method according to any one of the preceding claims, wherein the physical device is a field device configured to perform a physical function in response to a control signal generated by the instantiated MEEE or by another instantiated MEEE.

34. The method according to any one of the preceding claims, wherein the instantiated MEEE is a virtual process controller or a virtual safety controller that operates on the received information to generate a control signal to which the physical device can operatively respond.

35. The method according to any one of the preceding claims, wherein the instantiated MEEE is a virtual process controller or a virtual safety controller that operates on the information received from the physical device to generate a control signal to which the physical device or another physical device can operatively respond.

36. The method according to any one of the preceding claims, wherein the instantiated MEEE is included in a plurality of instantiated MEEEs, and the plurality of instantiated MEEEs includes at least one of the following: a virtual process controller, a virtual safety controller; a virtual safety logic solver; a virtual I / O card, device or node; a virtual wireless device; a virtual Ethernet device; a virtual operator workstation; a virtual user interface device; a virtual tool; a virtual gateway; a virtual electronic marshalling cabinet or system; the virtualization of another type of physical device or component disposed within the physical environment of an industrial process plant; a control service; a service providing a subsystem of the process control or automation system; or a service providing the business logic of the process control or automation system.

37. The process control or automation system according to the preceding claim, wherein the business logic of the process control or automation system includes at least one of the following: a monitoring application or service, an operation application or service, a diagnostic application or service, a dashboard application or service, a user interface application or service, an analysis application or service, a security routine application or service, a reporting application or service, a history application or service, a configuration application or service, a simulation application or service, a process control resource and / or resource management service, an automation resource and / or resource management service, an external communication application or service, an alarm application or service, a licensing application or service, or a third-party application or service.

38. The method according to any one of the preceding claims, wherein the instantiated MEEE is included in a plurality of instantiated MEEEs, and the plurality of instantiated MEEEs includes a packet router or switch service.

39. The method according to any one of the preceding claims, wherein the instantiated MEEE is included in a plurality of instantiated MEEEs, and the plurality of instantiated MEEEs includes at least one of the following: a software-defined computing service, a software-defined storage service, or a software-defined networking service.

40. The method according to any one of the preceding claims, wherein the instantiated MEEE is included in a plurality of instantiated MEEEs, and the plurality of instantiated MEEEs includes at least one of the following: a life cycle management service, a discovery service, a security service, an encryptor service, a certificate authority subsystem service, a key management service, an authentication service, a time synchronization service, a resource and / or resource group management service, a service location service, or a console support service.

41. The method according to any one of the preceding claims, wherein the instantiated MEEE is an instantiation of a configured packaged software component.

42. The method according to the preceding claim, wherein the packaged software component is a software container, a software agent, or bare-metal software.

43. The method according to any one of the preceding claims, the method further comprising discovering, by the process control and automation system, the identity of the instantiated MEEE and the identity corresponding to the physical device.

44. The method according to any one of the preceding claims, wherein the first authentication and / or authorization of the identity of the instantiated MEEE is based on a first certificate, and the second authentication and / or authorization corresponding to the identity of the physical device is based on a second certificate.

45. The method according to any one of the preceding claims, the method further comprising digitally signing and encrypting the information delivered between the instantiated MEEE and the physical device.

46. A combination of any one of the preceding claims with any other one of the preceding claims.

47. A process control or automation system configured to perform the method according to any one of the preceding claims.

Citation Information

Patent Citations

  • Software defined process control system and methods for industrial process plants

    US20220404798A1