Alias verification

By regularly verifying the alias of the process automation facility, using persistent connection detection changes, the problem of inefficiency of traditional identification technology is solved, data accuracy and productivity are improved, and system failure risk is reduced.

CN119766776APending Publication Date: 2025-04-04YOKOGAWA ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411378372.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-02
Filing Date
2024-09-30
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

The prior art is difficult to interpret and scale when tracking components of process automation facilities using traditional identification techniques, resulting in inefficient alias verification and difficulty in detecting alias changes quickly, increasing the risk of system failures and network traffic.

Method used

Reduce complexity and network traffic by allowing cross-platform clients to periodically verify aliases with subscribed cross-platform servers, using existing persistent connections to detect aliases changes, avoiding reconnecting to the global discovery server to retrieve updated aliases.

Benefits of technology

Improves data accuracy, promotes productivity, reduces the possibility of system failure and poor performance, and saves network bandwidth and reduces latency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119766776A_ABST
    Figure CN119766776A_ABST
Patent Text Reader

Abstract

The invention relates to alias verification. Embodiments described herein relate to periodically verifying aliases, e.g., by having a cross-platform client periodically verify the aliases of a cross-platform server to which it is subscribed. In various embodiments, a global discovery server (GDS) may be queried for a mapping between an alias of an input-output (I / O) channel hosted by a distributed control node (DCN) and a connection string. A cross-platform client may subscribe to an I / O channel by establishing a persistent network connection using a connection string. The persistent network connection may be used to obtain a local update list of mappings between aliases and connection strings from a local alias database of the DCN. A difference between the local update list of the mapping and the mapping between the alias and the connection string of the I / O channel hosted by the DCN may be identified. Based on the differences, various remedial measures may be taken.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to alias verification. Background Art

[0002] Process automation facilities may include countless components, including sensors, actuators, function blocks, and distributed control nodes (DCNs), among others. Tracking these components using traditional identification techniques can present various challenges. Connection strings, which may include network information such as the IP address and TCP / UDP ports of individual nodes, and node IDs used to identify individual components, such as sensors or actuators accessible via these nodes, are not easily interpreted by humans, nor are they easily extensible. Therefore, architectures such as the Open Platform Communications Unified Architecture (OPC UA) may include a global discovery server (GDS) that provides an "Alias ​​Name Service" (ANS) that helps map aliases (strings of human-readable / meaningful characters) to individual process automation nodes. In other words, the GDS is able to act as a "phone book" for cross-platform components, such as OPC UA clients. Summary of the invention

[0003] Aliases are typically defined from scratch. For example, aliases can be defined at a DCN, and the DCN can register these aliases with the GDS. The GDS can compile a global list of mappings between one or more aliases and one or more connection strings. Over time, process automation facilities may change. For example, additional aliases may be registered separately, hardware may fail and / or be replaced, and so on.

[0004] Embodiments described herein are directed to enabling cross-platform clients, such as OPC UA clients, to periodically verify aliases with cross-platform servers, such as OPC UAs servers, to which they subscribe. More specifically, but not exclusively, embodiments described herein are directed to using an existing persistent connection between an OPC UA client and an OPC UA server. This enables faster detection of aliases that have been changed or moved, and avoids the additional complexity and network traffic caused by the cross-platform client reconnecting to the GDS to retrieve updated aliases.

[0005] The techniques described herein provide a number of technical advantages. Automatically identifying differences between a local alias database and a GDS mapping can improve data accuracy, which in turn promotes increased productivity and reduces the likelihood of critical system failures or poor performance. Additionally, using the DCN rather than establishing a connection to the GDS to verify the alias can save computing resources such as network bandwidth, reduce latency and / or improve data accuracy.

[0006] In some embodiments, a method may be implemented, the method comprising querying a GDS for mappings between aliases and connection strings of an input-output (I / O) channel hosted by a DCN, subscribing a cross-platform client to the I / O channel, wherein the subscription comprises establishing a persistent network connection between the cross-platform client and the DCN using the connection string; obtaining a locally updated list of mappings between aliases and connection strings from a local alias database of the DCN via the persistent network connection; identifying a difference between the locally updated list of mappings and the mappings between aliases and connection strings of the I / O channel hosted by the DCN; establishing a temporary network connection between the cross-platform client and the GDS based on the difference; and retrieving an updated mapping between the aliases and the new connection strings from the GDS via the temporary network connection.

[0007] In some embodiments, the new connection string of the updated mapping is associated with a different DCN. In some embodiments, the new connection string of the updated mapping is associated with a different I / O channel of the same DCN. In some embodiments, the GDS sends one or more alias updates in response to a compiled change to a global list of mappings between aliases and connection strings. In some embodiments, the method also includes subscribing a cross-platform client to the updated I / O channel based on the new connection string of the updated mapping. In some embodiments, the difference includes duplicate aliases detected at least in part based on a local update list of mappings. In some embodiments, the difference includes a missing alias in a local update list of mappings. In some embodiments, the method also includes closing a temporary network connection upon receiving the updated mapping.

[0008] In some embodiments, a method can be implemented, the method comprising, at a first component included in an architecture, identifying a first local list of mappings between aliases and connection strings; based on the identification, querying a second component of the architecture for verification of accuracy corresponding to the first local list; based on receiving a response to the query, identifying a difference between the first local list of mappings and a second local list of mappings of at least a second component; based on the difference, sending a request for an updated list of mappings to the second component or another component of the architecture; and updating the first local list of mappings at the first component and in response to receiving the updated list of mappings.

[0009] In some embodiments, the first component is a cross-platform client and the second component is a GDS. In some embodiments, the first component is a cross-platform client and the second component is a DCN. In some embodiments, the request sent is to another component and the other component is a GDS. In some embodiments, the first component is a first DCN and the second component is another DCN.

[0010] In some embodiments, the method further includes, after updating the first local list of mappings, modifying one or more subscriptions of the first component based on the updated list of mappings. In some embodiments, the method further includes, before querying the second component of the architecture, determining a current persistent connection with the second component. In some embodiments, before querying the second component, the current persistent connection corresponds to a subscription of the first component to the second component. In some embodiments, before querying the second component, the second component identifies a modification of one or more features hosted by the second component, wherein the updated list of mappings reflects the modification. In some embodiments, based on the updated list of mappings reflecting the modification, updating or terminating the subscription of the first component to the second component. In some embodiments, the method further includes, after updating the first local list of mappings, sending a connection request from the first component and based on the updated list to a third component in the architecture, and in response to the connection request being acknowledged by the third component, identifying one or more new subscriptions between the first component and the third component.

[0011] Some embodiments include one or more processors of one or more computing devices, wherein the one or more processors are operable to execute instructions stored in an associated memory, and wherein the instructions are configured to cause performance of any of the foregoing methods. Some embodiments also include one or more non-transitory computer-readable storage media storing computer instructions executable by the one or more processors to perform any of the foregoing methods.

[0012] It should be understood that all combinations of the above concepts and additional concepts described in more detail herein are considered to be part of the subject matter disclosed herein. For example, all combinations of the claimed subject matter appearing at the end of this disclosure are considered to be part of the subject matter disclosed herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figure 1 An environment is schematically depicted in which selected aspects of the present disclosure may be implemented according to various embodiments.

[0014] Figure 2A , Figure 2B and Figure 2C Examples of how the techniques described herein may be implemented according to various embodiments are schematically depicted.

[0015] Figure 3 Another example of how the technology described herein may be implemented is schematically shown.

[0016] Figure 4 Example methods for performing selected aspects of the present disclosure are schematically illustrated.

[0017] Figure 5 Another example method for performing selected aspects of the present disclosure is schematically illustrated.

[0018] Figure 6 An example computer architecture is schematically illustrated upon which selected aspects of the present disclosure may be implemented. DETAILED DESCRIPTION

[0019] Embodiments described herein relate to enabling cross-platform clients, such as OPC UA clients, to periodically verify aliases with cross-platform servers to which they subscribe, such as OPC UA servers. More specifically, but not exclusively, embodiments described herein are used to use an existing persistent connection between an OPC UA client and an OPC UA server to perform alias verification. This enables faster detection of aliases that have been changed or moved, and avoids the additional complexity and network traffic caused by cross-platform clients reconnecting to the GDS to retrieve updated aliases. As used herein, a "persistent" connection refers to a network communication channel with an open and / or unrestricted duration or lifespan, for example, it remains open for subsequent exchanges rather than being closed after the initial exchange. In contrast, a "temporary" connection refers to a temporary network communication channel established for the exchange of specific data, and it is closed after the specific data exchange is completed.

[0020] An alias may be a string of human-interpretable / meaningful characters (a word, name, phrase, etc., rather than a sequence of binary characters or hashes). In some cases, aliases may be defined in bulk, for example, via an alias configuration file that includes a list of aliases and corresponding connection strings. Alias ​​configuration files can be provided and / or modified using a configuration tool that allows aliases to be created and / or modified and causes corresponding cross-platform clients - such as DCN - to register these aliases with the GDS. As previously mentioned, over time, process automation facilities may change, which may cause one or more alias configuration files of one or more components of OPC UA to become obsolete (out-of-date, misleading and / or inaccurate, etc.). For example, hardware may be removed, replaced, and / or additional aliases may be registered separately, causing alias configuration files created prior to these events to become obsolete.

[0021] The GDS may be operable to create new aliases, modify existing aliases, and / or correct obsolete aliases as described above by providing an Alias ​​Name Service (ANS) that facilitates mapping aliases (e.g., strings of characters presented in a syntax that is easily understood by humans) to connection strings and node IDs (e.g., strings of characters presented in a syntax that is easily understood by computers). Thus, the GDS may include aliases that are easily interpretable by both human users of OPC UA and non-human components of OPC UA (DCNs, Clients, Sensors, etc., if and / or in a given embodiment such components are separate). Thus, in some embodiments, the GDS may resemble a "phone book" for OPC UA components and users.

[0022] Reference now Figure 1 , schematically depicts an example environment 100 in which aspects of the present disclosure may be implemented. Starting from the upper left corner, DCN 102A, hosting OPC UA client 105, establishes a temporary network connection with GDS 104. Subsequently, DCN 102A queries GDS 104 (e.g., "ALIAS1?"). The query "ALIAS1?" may indicate a request from DCN 102A for data associated with "ALIAS1," such as a mapping between "ALIAS1" and a corresponding connection string. Based on the request, GDS 104 sends "CONNECTION STRING1" to DCN 102A.

[0023] The transmission of "connection string 1" from GDS 104 to DCN 102A may be based on a determination that "alias 1" is associated with "connection string 1". "Connection string 1" (and therefore "alias 1") may be associated with one or more components, such as DCN 102B and / or its components (e.g., sensors, I / O channels, function blocks, etc.). Once DCN 102A obtains "connection string 1" from GDS 104, DCN 102A may close the temporary network connection with GDS 104, as indicated by "X".

[0024] After DCN 102A receives "Connection String 1" and closes the temporary connection with GDS 104, Figure 1Depicted is a DCN 102A subscribing to a DCN 102B. For example, the subscription may include subscribing an OPC UA client 105 to one or more components associated with "Connection String 1". For example, the OPC UA client 105 may, based on receipt of "Connection String 1", subscribe to (multiple) I / O channels or (multiple) function blocks associated with an OPC UA server 106A hosted by the DCN 102B. The subscription of the DCN 102A to the DCN 102B may result in data being exchanged between the DCN 102B and the DCN 102A. The exchanged data may include, for example, sensor data associated with an I / O channel corresponding to the OPC UA server 106A.

[0025] like Figure 1 As shown, after DCN 102A receives data from DCN 102B, DCN 102A may perform an "Alias ​​Check" on DCN 102B. However, the embodiments disclosed herein are not limited to the temporary limitations described in the accompanying drawings. Therefore, in some embodiments, DCN 102A may perform an "Alias ​​Check" before, during, and / or after receiving any data from DCN 102B. In some embodiments, the alias check is related to potential facility changes.

[0026] In response to DCN 102A performing an "alias check" with DCN 102B (which may include DCN 102A prompting DCN 102B to provide aliases and / or connection strings associated with DCN 102B), DCN 102B may send a locally updated list of mappings between alias(s) and / or connection strings ("Alias ​​1: CS1, Alias ​​2: CS2, ...") to at least DCN 102A. If no discrepancies are detected between one or more aliases known to DCN 102A and those communicated in the locally updated list of mappings received from DCN 102B, no further action may be required.

[0027] However, at some point, such as Figure 1As shown, DCN 102C (or its components) may "TAKE OVER ALIAS 1" temporarily or for a period of time. For example, if a temperature sensor (e.g., a thermometer, a thermocouple, a thermostat, etc.) associated with "Alias ​​1" is moved from DCN 102B to DCN 102C, DCN 102C may now become associated with (e.g., "take over") "Alias ​​1". In response, DCN 102C may send an indication to GDS 104 that DCN 102C has taken over "Alias ​​1". Accordingly, GDS 104 may store the updated information. In some embodiments, due to latency, network constraints, etc., GDS 104 may not immediately and / or automatically (i.e., without prompting from a user and / or component) send the updated information to other DCNs (102A, 102B, ..., etc.). In some implementations, the updated information may only be sent from the GDS 104 to the corresponding DCN after the corresponding DCN queries the GDS 104 for the updated information.

[0028] Some time after DCN 102C takes over Alias ​​1, DCN 102A may perform another alias check with DCN 102B. Since DCN 102A performs an alias check with DCN 102B after DCN 102C takes over "Alias ​​1", DCN 102A receives a transmission from DCN 102B indicating that DCN 102B is now associated with "Alias ​​2: CS2, Alias ​​3: CS3" instead of also being associated with "Alias ​​1" and "Connection String 1".

[0029] In response to receiving a transmission from DCN 102B indicating that DCN 102B is associated only with "Alias ​​2: CS2, Alias ​​3: CS3", DCN 102A may establish at least one temporary network connection with GDS 104. DCN 102A may then send a request / command "Alias ​​1?" to GDS 104 to obtain an updated mapping between "Alias ​​1" and the new connection string. GDS 104 may identify DCN 102C (or one or more components thereof) associated with "Alias ​​1" and send the connection string associated with the identified DCN 102C to DCN 102A.

[0030] In some implementations, the GDS 104 may not be able to identify the appropriate DCN. For example, if a component is identified as failed or removed, the GDS 104 may not send the identification of the DCN (with which the alias was previously associated) to the requesting component. The GDS 104 may instead send a notification that the component has failed or has been removed. However, if Figure 1As shown and discussed previously, GDS 104 identifies "Alias ​​1" as being or having been taken over by DCN 102C. Thus, GDS 104 may respond to DCN 102A's request for "Alias ​​1" by identifying DCN 102C via GDS 104's transmission of "Connection String 2".

[0031] like Figure 1 As shown, in response to a request from DCN 102A to GDS 104, DCN 102A may receive a transmission, for example, "connection string 2". "Connection string 2" may include information indicating that DCN 102C (or one or more components thereof) is associated with "alias 1". DCN 102A, upon receiving the transmission "connection string 2" from GDS 104, may close the connection with GDS 104. DCN 102A may subscribe to DCN 102C based on the information indicating that DCN 102C is associated with "alias 1" and after closing the connection with GDS 104. After DCN 102A subscribes to DCN 102C, data may be exchanged from DCN 102A to DCN 102C.

[0032] although Figure 1 The use of unidirectional arrows to depict data transfers, however, embodiments are not necessarily limited to unidirectional communication between the depicted components. Figure 1 The related embodiments focus on DCN 102A receiving information associated with "Alias ​​1", but DCN 102A may also send information to various components in the architecture.

[0033] Reference now Figure 2A-2C , schematically depicts example environments 200A-200C, and includes aspects of the present disclosure that may be present in some implementations. Figure 2A , DCN 202A may include an OPC UA server 204A, which itself may include an I / O channel 250A associated with the alias "thermostat" and subscribed to by an OPC UA client 270 "fan controller", and an I / O channel 260A associated with the alias "actuator 1". In some embodiments, OPC UA client 270 "fan controller" may also subscribe to I / O 260A "actuator 1". As a result of OPC UA client 270 "fan controller" subscribing to I / O channel 250A "thermostat", data indicative of I / O channel 250A "thermostat" may be sent to OPC UA client 270 "fan controller". OPC UA client 270 "fan controller" may use the data received from I / O 250A "thermostat" to control one or more aspects of a process in the facility.

[0034] Reference now Figure 2B , the physical sensor associated with I / O channel 250A "thermostat" (e.g., a thermostat) has been removed, moved, or replaced. In some embodiments, removal of the physical sensor associated with I / O channel 250A may result in insufficient data. In some embodiments, moving the physical sensor associated with I / O channel 250A "thermostat" to a different location (e.g., another DCN) may result in stale and / or inaccurate data. In some embodiments, replacement of a sensor (e.g., replacing a thermostat with a photoelectric sensor) may also result in stale and / or inaccurate data.

[0035] like Figure 2B As shown, OPC UA client 270 "Fan Controller" - unaware of the removal, transfer or replacement of the above-mentioned sensor - still subscribes to I / O 250A "Thermostat" of DCN 202A, even though no data is being generated, or data may be stale. For example, if a different physical sensor - such as a photoelectric sensor - becomes associated with I / O channel 250A "Thermostat" of DCN 202A, and the data generated by the photoelectric sensor is associated with I / O channel 250A "Thermostat", then OPC UA client 270 "Fan Controller" may continue to function in the process automation facility based on erroneous data (i.e., based on the photoelectric sensor data that is believed to be associated with the physical thermostat sensor).

[0036] Reference now Figure 2C , OPC UA client 270 may verify the alias with DCN 202A. In response to the alias verification with DCN 202A, OPC UA client 270 may determine that the alias "Thermostat" is no longer associated with DCN 202A (as indicated by the prohibitory symbol). In some embodiments, the lack of association may be due to a system integrator specifically assigning the alias to different components of the architecture. In some embodiments, the lack of association may be due to the presence of multiple instances of the same alias, and one or more components of the architecture determining that an instance of the duplicate alias supersedes the other instances. Regardless, based on determining that the alias "Thermostat" is no longer associated with DCN 202A, OPC UA client 270 may cease connecting to DCN 202A and / or connecting to GDS 104. As Figure 2C As shown, the OPC UA client 270 "Fan Controller" has established at least a temporary connection with the GDS 104, which includes the ANS 290 to facilitate the mapping of aliases to components in the architecture, including mapping the alias "Thermostat" to one or more connection strings.

[0037] Figure 2CAlso depicted is DCN 202B, which hosts OPC UA server 204B, and includes I / O channel 250B and I / O channel 260B. I / O channel 250B is now associated with the alias "Thermostat" and I / O channel 260B is associated with the alias "Actuator2". As described herein, aliasing can be performed by a user / system integrator or automatically by one or more components including ANS 290. For example, ANS 290 can detect updates to aliases, connection strings, and corresponding components independently or based on data received from other components in the architecture.

[0038] After the I / O channel 250B is associated with the alias "thermostat", the DCN 202B may send data indicating that the alias "thermostat" is associated with the I / O 250B to the GDS 104. The GDS 104 may store data indicating aliases associated with components of the architecture. However, as previously described, resource and network constraints may limit the ability of the GDS 104 to automatically and / or immediately send the stored data indicating the alias to interested components in the GDS 104 network. Accordingly, in some embodiments, the GDS 104 may store the indicating alias for a considerable period of time (as a non-limiting example of magnitude, 1 second, 1 minute, 1 hour, 1 day, 1 week, etc.) before automatically sending the stored data to the interested components - that is, if the GDS 104 is configured to automatically (without request) send the stored data. Thus, OPC UA client 270 “Fan Controller” may query GDS 104 before GDS 104 sends stored data indicating that I / O channel 250B is associated with the alias “Thermostat”.

[0039] In response to the query from OPC UA client 270 “Fan Controller”, GDS 104 may send data indicating the alias “Thermostat” of I / O channel 250B to OPC UA client 270 “Fan Controller”. Based on the data indicating the alias “Thermostat” of I / O channel 250B, OPC UA client 270 “Fan Controller” may subscribe to I / O channel 250A “Thermostat” of DCN 202B. OPC UA client 270 “Fan Controller” may also stop connecting to GDS 104 after receiving the data indicating the alias “Thermostat” of I / O channel 250B.

[0040] For example, as described herein, an OPC UA server may maintain an up-to-date list of aliases that it currently hosts, and may therefore be able to provide an OPC UA client with a list of these current aliases in an Alias ​​Update. Figure 1 and 2AAs shown in Figure 2-C, OPC UA client 270 may periodically request an "Alias ​​Update" from OPC UA server 204 hosting the I / O channels associated with the aliases to which the OPC UA client is seeking to subscribe. OPC UA client 270 may then check the list of aliases provided in the Alias ​​Update against the local list of aliases. If there is a difference, the OPC UA client may establish a connection to the GDS to identify the latest I / O channels corresponding to one or more aliases subscribed by the OPC UA client.

[0041] In some embodiments, an OPC UA Server may proactively publish alias updates to one or more components in the architecture, with or without a request from an OPC UA Client. The OPC UA Server may do this periodically, and / or in response to any changes to one or more aliases. Changes may be the result of various events, such as the addition, replacement, and / or removal of one or more aliases by the GDS or by an engineer.

[0042] The DCN may not always need to re-establish a temporary connection with the GDS 104 to retrieve an updated alias. For example, in some embodiments, a first DCN configured with selected aspects of the present disclosure can utilize a second DCN's temporary connection with the GDS 104 to facilitate alias updates without the first DCN needing to establish its own temporary connection with the GDS 104. Figure 3 OPC UA 300 is depicted wherein DCN 330B and OPC UA client 350 are connected to each other via a persistent connection, and wherein GDS 104 and DCN 330A temporarily communicate with each other.

[0043] While DCN 330A may be able to interact directly with GDS 104 for alias validation and / or updating alias mappings, neither DCN 330B nor OPC UA client 350 are immediately able to perform the same operations due to the current lack of direct connectivity to GDS 107. However, as previously described, DCN 330B and OPA UA client 350 are able to exchange information with each other regarding alias validation and / or updating alias mappings.

[0044] In some embodiments, components of OPC UA 300 can propagate alias verification and / or updated alias mapping requests to GDS 104 indirectly, for example, by relaying information through one or more other components. For example, OPC UA client 350 can propagate alias verification and / or updated alias mapping requests through DCN 330B, then to DCN 330A via a connection that may be temporarily established or already established (shown as a dashed line), and then to GDS 104. GDS 104 can then propagate a response back to OPC UA client 350 through the same component.

[0045] Alternatively, at any time during the query and / or request propagation process, a connection may be established between components to skip additional components of the propagation chain. For example, OPC UA client 350 may propagate a query to DCN 330B, which may establish at least one temporary connection with GDS 104 without further propagating the query through DCN 330A. A similar connection may also occur after GDS 104 receives the query, so that GDS 104 may respond directly to OPC UA client 350, for example, by establishing a temporary connection, even if the query propagates through multiple components in the OPC UA 300 system.

[0046] In some cases, the local alias databases (e.g., 332, 352) may be up-to-date such that they include sufficiently updated mappings to respond to queries without interacting with GDS 104. Figure 3 In some implementations, DCN 330A may have recently received the updated alias mappings through its existing connection to GDS 104. Accordingly, if a query is propagated from OPC UA 350 to DCN 330B and then to DCN 330A (which has the updated alias mappings and therefore knows the response), DCN 330A is able to respond to the query without having to propagate the query further to GDS 104. In some implementations, the response by DCN 330A may occur over the same propagation channel or via establishing a direct communication channel.

[0047] Figure 4 4 is a flowchart illustrating an example method 400 for practicing selected aspects of the present disclosure according to embodiments disclosed herein. For convenience, the operations of the flowchart are described with reference to a system performing the operations. The system may include various components of various computer systems, such as one or more components of OPC UA 300 and / or Figure 1 -2. In addition, although the operations of method 400 are shown in a particular order, this is not meant to be limiting. One or more operations may be reordered, omitted, and / or added.

[0048] At block 402, a first component of the architecture identifies a first local list of mappings between aliases and connection strings. OPC UA 300 represents an exemplary architecture in which Figure 4 The first component may be a GDS 104, a DCN 330, and / or an OPC UA client 350. The first local list may be stored on a local database of the first component. For example, the first local list may be stored on an ANS 290, a local alias database 332, 352, etc.

[0049] At block 404, a second component of the architecture is queried for verification of accuracy corresponding to the mapped first local list. In block 402, the second component may be queried based on and / or in response to an identification of the first local list. In some embodiments, the query for verification of accuracy includes a request from the first component to the second component to identify one or more similarities and / or differences between the mapped first local list and the mapped second local list. The mapped second local list may be stored on the second component and / or another component in communication with the second component. In some embodiments, the first component is a cross-platform client (e.g., 350) and the second component is a DCN (e.g., 330A / B). In some embodiments, the first component is a first DCN (e.g., 330A) and the second component is another DCN (e.g., 330B). In some embodiments, the first component is a cross-platform client (e.g., 350) and the second component is a GDS (e.g., 104).

[0050] In some embodiments, before querying the second component, a current persistent connection between the first component and the second component is determined. The current persistent connection may correspond to a subscription of the first component to the second component. For example, the first component may subscribe to one or more I / O channels or function blocks hosted on the second component.

[0051] At block 406, differences are identified between the first local list of mappings and the second local list of mappings of at least the second component. In some implementations, the differences of block 406 may be identified by the first component based on receiving a response to the query of block 404 from the second component. In some implementations, the second component may identify a modification to one or more features hosted on the second component. The response of the second component to the query from the first component may reflect the modification to the one or more features. The identified differences may correspond to the modifications.

[0052] At block 408, the first component sends a request for an updated list of mappings. The request may be sent based on the differences identified in block 406, but may alternatively be sent based on various other criteria. The various other criteria may include, for example, an elapsed time relative to a previous request for an updated list, an estimated accuracy of a given local list corresponding to a given local component of the architecture, and / or feedback from a user / system integrator.

[0053] In some embodiments, both the query of block 404 and the request of 408 may be sent to the same (e.g., second) component. For example, the first component may be an OPC UA client (e.g., 350), and the second component may be a DCN (e.g., 330A / B). After querying the DCN 330A / B to verify accuracy in step 404, and after identifying differences during block 406, the OPC UA client 350 may request an updated list of mappings from the DCN 330A / B. Such embodiments may be particularly relevant, for example, in situations where the DCN 330A / B is able to verify accuracy (e.g., the DCN 330A / B may identify components previously hosted on the DCN 330 A / B as having been removed), and may also verify a comprehensive updated mapping (e.g., the DCN 330A / B may accurately identify where components previously hosted on the DCN 330A / B have been moved).

[0054] In some embodiments, the request sent is to a third (e.g., not the second) component. In some of these embodiments, the first component may be an OPC UA client (e.g., 350), the second component may be a DCN (e.g., 330A / B), and the third component may be a GDS (e.g., 104). After the OPC UA client 350 queries the DCN 330A / B in step 404, and after identifying the differences in block 406, the OPC UA client 350 may request an updated list of mappings from the GDS 104. Such an embodiment may be particularly relevant, for example, in situations where the DCN 330A / B is able to verify accuracy (e.g., the DCN 330A / B may identify a component previously hosted on the DCN 330A / B as having been removed), but is unable to immediately provide a comprehensive updated mapping (e.g., the DCN 330A / B may not accurately identify where a component previously hosted on the DCN 330A / B has been moved).

[0055] At block 410 , the first component receives the updated list of mappings and updates the first local list of mappings based on the updated list. The updated list of mappings may be received in response to the query of block 408 .

[0056] In some embodiments, prior to receiving the mapped update list at block 410, the first component may subscribe to one or more characteristics of the second component. After receiving the update list at block 410, and based on the update list, the subscription of the first component to the one or more characteristics of the second component may be modified. In some embodiments, after receiving the mapped update list, and based on the update list, the first component may send a connection request to a third component in the architecture. In response to the sent connection request being acknowledged by the third component in the architecture, the first component may identify one or more new subscriptions between the first component and the third component.

[0057] Figure 5 5 is a flow chart illustrating an example method 500 for practicing selected aspects of the present disclosure according to the embodiments disclosed herein. For convenience, the operations of the flow chart are described with reference to a system performing the operations. The system may include various components of various computer systems, such as one or more components described herein. In addition, although the operations of method 500 are shown in a particular order, this is not meant to be limiting. One or more operations may be reordered, omitted, and / or added.

[0058] At block 502, the system queries the GDS (e.g., 104), for example, via a cross-platform client (e.g., 270, 350) hosted by the DCN (e.g., 102, 202, 330A, 330B), for mappings between aliases and connection strings for I / O channels or function blocks hosted by the DCN. In various embodiments, the query may be performed by the DCN (or components contained therein) and / or the OPC UA client if and / or to the extent that the DCN and / or OPC UA are different in a given embodiment. Figure 3 As shown, in some embodiments, a query can be propagated from a query component through one or more non-query components. The GDS may include an ANS (e.g., 290) that is specifically used to map components of OPC UA (such as I / O channels and / or function blocks) to one or more aliases. In some embodiments, an alias can be a string that is easily interpreted by humans, such as a word or a phrase.

[0059] At block 504, the system subscribes the cross-platform client to the I / O channel or function block. The subscription may include, for example, establishing a persistent network connection between the cross-platform client and the DCN using a connection string. In some embodiments, the subscription may be temporary or persistent (e.g., similar to and / or using a TCP connection). In various embodiments, the connection string may be static or dynamic.

[0060] At block 506, the system obtains a locally updated list of mappings between aliases and connection strings from a local alias database of the DCN via a persistent network connection, such as by a cross-platform client. As described herein, in some embodiments, components of OPC UA, including the DCN, may include one or more local databases, including one or more local alias databases (e.g., 332, 352).

[0061] At block 508, the system identifies differences between the mapped local update list and mappings between aliases and connection strings of I / O channels hosted by the DCN to which the cross-platform client subscribes, such as by the cross-platform client. In various embodiments, the differences may include duplicate aliases detected based at least in part on the mapped local update list. Alternatively, the differences may include aliases that are missing from the mapped local update list.

[0062] Based on the difference, at block 510, the system establishes a temporary network connection between the cross-platform client and the GDS. In various embodiments, the temporary network connection between the cross-platform client and the GDS may be direct or indirect. In some embodiments in which the temporary network connection between the cross-platform client and the GDS is indirect, the network connection may also include one or more intermediate components included in OPC UA. In various embodiments, a network connection including at least one or more intermediate components of OPC UA may require data packets to propagate through and / or be propagated by the intermediate components, and / or be stored by the intermediate components.

[0063] At block 512, the system retrieves an updated mapping between the alias and the new connection string from the GDS via the temporary network connection. In various embodiments, the new connection string of the updated mapping can be associated with a different DCN. In some embodiments, the new connection string of the updated mapping can be associated with a different I / O channel of the same DCN. In some embodiments, the GDS sends one or more alias updates in response to one or more changes in the compilation of the mapping between the alias and the connection string.

[0064] In some implementations, method 500 may further include subscribing the cross-platform client to the updated I / O channel based on the new connection string of the updated mapping. In various implementations, method 500 may further include closing the temporary network connection after receiving the updated mapping.

[0065] Figure 66 is a block diagram of an example computing device 610 that may optionally be used to perform one or more aspects of the techniques described herein. The computing device 610 typically includes at least one processor 614 that communicates with a plurality of peripheral devices via a bus subsystem 612. These peripheral devices may include a storage subsystem 624, including, for example, a memory subsystem 625 and a file storage subsystem 626, a user interface output device 620, a user interface input device 622, and a network interface subsystem 616. The input and output devices allow a user to interact with the computing device 610. The network interface subsystem 616 provides an interface to an external network and is coupled to corresponding interface devices in other computing devices.

[0066] The user interface input devices 622 may include a keyboard, a pointing device such as a mouse, trackball, touchpad or graphic tablet, a scanner, a touch screen incorporated into a display, an audio input device such as a voice recognition system, a microphone, and / or other types of input devices. In general, the use of the term "input device" is intended to include all possible types of devices and ways of inputting information into the computing device 610 or a communication network.

[0067] User interface output devices 620 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide a non-visual display, such as via an audio output device. In general, the use of the term "output device" is intended to include all possible types of devices and ways to output information from the computing device 610 to a user or another machine or computing device.

[0068] The storage subsystem 624 stores programming and data structures that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 624 may include an executable Figure 4 and Figure 5 The logic of selected aspects of the methods shown in , and the implementation Figure 1-3 The logic of the various components shown in .

[0069] These software modules are typically executed by the processor 614 alone or in conjunction with other processors. The memory 625 used in the storage subsystem 624 can include multiple memories, including a main random access memory (RAM) 630 for storing instructions and data during program execution and a read-only memory (ROM) 632 in which fixed instructions are stored. The file storage subsystem 626 can provide persistent storage for program and data files, and can include a hard drive, a floppy disk drive and associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules that implement the functionality of a particular embodiment can be stored in the storage subsystem 624 by the file storage subsystem 626, or in other machines accessible to the processor(s) 614.

[0070] The bus subsystem 612 provides a mechanism for the various components and subsystems of the computing device 610 to communicate with each other as intended. Although the bus subsystem 612 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.

[0071] The computing device 610 can be of different types, including a workstation, a server, a computing cluster, a blade server, a server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, Figure 6 The description of computing device 610 depicted in FIG. 6 is intended only as a specific example to illustrate some embodiments. Many other configurations of computing device 610 may have more Figure 6 The computing devices shown may have greater or fewer components.

[0072] Although several embodiments are described and shown herein, various other means and / or structures may be utilized to perform the functions described herein and / or obtain the results and / or one or more advantages, and each such variation and / or modification is considered to be within the scope of the embodiments described herein. More generally, all parameters, dimensions, materials, and configurations described herein are exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend on the specific application of the teachings used. Those skilled in the art will recognize, or be able to determine many equivalents to the specific embodiments described herein using only routine experiments. Therefore, it should be understood that the above embodiments are presented only by way of example, and within the scope of the attached claims and their equivalents, the embodiments may be practiced in a manner different from the specific description and requirements. The embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, if two or more such features, systems, articles, materials, kits, and / or methods do not contradict each other, any combination thereof is included within the scope of the present disclosure. In addition, one or more parts disclosed herein may exemplarily refer to components and / or methods associated with an open platform communication unified architecture. The present disclosure is in no way limited to OPC UA and may be implemented across one or more cross-platform architectures and / or cross-platform components. References herein to OPC UA are examples of one or more applications disclosed herein and should not be construed as limiting the present disclosure in any way.

Claims

1. A method comprising: Querying a global discovery server (GDS) for mappings between aliases and connection strings of input-output (I / O) channels hosted by a distributed control node (DCN); subscribing a cross-platform client to the I / O channel, wherein the subscribing comprises establishing a persistent network connection between the cross-platform client and the DCN using the connection string; obtaining, via the persistent network connection, from a local alias database of the DCN, a locally updated list of mappings between aliases and connection strings; identifying differences between said locally updated list of mappings and said mappings between said aliases and said connection strings for said I / O channels hosted by said DCN; Based on the difference, establishing a temporary network connection between the cross-platform client and the GDS; and An updated mapping between the alias and the new connection string is retrieved from the GDS via the temporary network connection.

2. The method according to claim 1, wherein: The new connection string of the updated mapping is associated with a different DCN.

3. The method according to claim 1, wherein: The new connection string of the updated mapping is associated with a different I / O channel of the same DCN.

4. The method according to claim 1, wherein: The GDS sends one or more alias updates in response to a compiled change to a global list of mappings between aliases and connection strings.

5. The method according to claim 1, further comprising: The cross-platform client is subscribed to an updated I / O channel based on the new connection string of the updated mapping.

6. The method according to claim 1, wherein: The differences include duplicate aliases detected based at least in part on the local update list of mappings.

7. The method according to claim 1, wherein: The difference includes the absence of the alias from the local update list of mappings.

8. The method according to claim 1, further comprising: Upon receiving the updated mapping, the temporary network connection is closed.

9. A method comprising: At a first component included in the schema, a first local list identifying mappings between aliases and connection strings; Based on the identification, querying a second component of the architecture for verifying accuracy corresponding to the first local list; identifying differences between the first local list of mappings and at least a second local list of mappings for the second component based on receiving a response to the query; sending a request for an updated list of mappings to the second component or another component of the architecture based on the difference; as well as At the first component and in response to receiving the updated list of mappings, the first local list of mappings is updated.

10. The method according to claim 9, wherein: The first component is a cross-platform client, and The second component is the Global Discovery Server (GDS).

11. The method according to claim 9, wherein: The first component is a cross-platform client, and The second component is a distributed control node (DCN).

12. The method according to claim 11, wherein: The request is sent to another component, and The other component is a Global Discovery Server (GDS).

13. The method according to claim 9, wherein: The first component is a first distributed control node (DCN), and The second component is another DCN.

14. The method according to claim 9, further comprising: After updating this first local list of mappings: One or more subscriptions of the first component are modified based on the mapped update list.

15. The method according to claim 9, further comprising: Prior to querying the second component of the schema: A current persistent connection with the second component is determined.

16. The method according to claim 15, wherein: Before querying the second component, the current persistent connection corresponds to a subscription of the first component to the second component.

17. The method according to claim 16, wherein: Prior to querying the second component, the second component identifies modifications of one or more features hosted by the second component, and wherein, The updated list of maps reflects the modification.

18. The method according to claim 17, wherein: Based on the updated list reflecting the modified mapping, the subscription of the first component to the second component is updated or terminated.

19. The method according to claim 9, further comprising: After updating this first local list of mappings: sending, from the first component and based on the updated list, a connection request to a third component in the architecture, and In response to the connection request being acknowledged by the third component, one or more new subscriptions between the first component and the third component are identified.

20. A system comprising: One or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, are operable to cause the one or more computers to perform operations comprising: Querying a global discovery server (GDS) for mappings between aliases and connection strings of input-output (I / O) channels hosted by a distributed control node (DCN); subscribing a cross-platform client to the I / O channel, wherein the subscribing comprises establishing a persistent network connection between the cross-platform client and the DCN using the connection string; obtaining, via the persistent network connection, from a local alias database of the DCN, a locally updated list of mappings between aliases and connection strings; identifying differences between said locally updated list of mappings and said mappings between said aliases and said connection strings for said I / O channels hosted by said DCN; Based on the difference, establishing a temporary network connection between the cross-platform client and the GDS; and An updated mapping between the alias and the new connection string is retrieved from the GDS via the temporary network connection.