过程自动化软件应用的分布式部署

申请号 CN202280056502.9 申请日 2022-08-18 公开(公告)号 CN117916711A 公开(公告)日 2024-04-19
申请人 横河电机株式会社; 发明人 泽原英则; 和气一郎; 帕特里克·克雷; 维安·阮; 戴维·埃默森; 马克·哈默;
摘要 本文描述了用于跨过程自动化系统的过程自动化 节点 自动部署功能 块 应用程序FBAP的实施方式。在各种实施方式中,可以识别与FBAP的执行相关联的一个或更多个约束。基于一个或更多个约束,可以分析包括多个过程自动化节点的过程自动化系统。基于分析,可以从多个处理节点中选择要在其上分布式部署FBAP的两个或更多个过程自动化节点的子集。响应于选择子集,可以跨子集的两个或更多个过程自动化节点分布式部署FBAP。
权利要求

1.一种使用一个或更多个处理器实现的方法,包括:
识别与过程自动化软件应用(FBAP)的执行相关联的一个或更多个约束;
基于所述一个或更多个约束来分析包括多个过程自动化节点的过程自动化系统;
基于所述分析,从所述多个处理节点中选择要在其上分布式部署所述FBAP的两个或更多个过程自动化节点的子集;以及
响应于选择所述子集:
跨所述子集的所述两个或更多个过程自动化节点来分布式部署所述FBAP。
2.根据权利要求1所述的方法,还包括将所述FBAP组装成多个功能,其中,所述分布式部署包括在所述子集的所述两个或更多个过程自动化节点中的相应一个过程自动化节点的执行引擎上安装所述多个功能块中的相应一个功能块。
3.根据权利要求2所述的方法,其中,所述组装包括针对所述多个相应功能块中的每个功能块生成一个或更多个通信模块,所述一个或更多个通信模块促进在所述多个功能块之间发布或订阅数据。
4.根据权利要求1至3中的任一项所述的方法,其中,与所述FBAP的执行相关联的所述一个或更多个约束包括对能够在其上分布式部署所述FBAP的过程自动化节点的数量的限制。
5.根据权利要求4所述的方法,其中,基于所述多个过程自动化节点的可用计算资源来确定对所述过程自动化节点的数量的所述限制。
6.根据权利要求1至5中的任一项所述的方法,其中,与所述FBAP的执行相关联的所述一个或更多个约束包括针对包括或由所述FBAP实现的控制回路的执行的时间限制。
7.根据权利要求1至6中的任一项所述的方法,其中,与所述FBAP的执行相关联的所述一个或更多个约束包括一个或更多个位置约束。
8.根据权利要求7所述的方法,其中,所述位置约束中的一个或更多个被施加在所述FBAP的两个或更多个功能块之间。
9.根据权利要求7或8所述的方法,其中,所述位置约束中的一个包括所述子集的第一过程自动化节点与另一过程自动化节点之间的最大物理距离。
10.根据权利要求9所述的方法,还包括基于在所述子集的所述第一过程自动化节点与所述另一过程自动化节点之间使用的通信协议来确定所述最大物理距离。
11.根据权利要求9或10所述的方法,其中,所述另一过程自动化节点包括生成由所述FBAP处理的传感器数据的传感器。
12.根据权利要求7至11中的任一项所述的方法,其中,所述位置约束中的一个包括所述子集的第一过程自动化节点与另一过程自动化节点之间的网络跳跃的最大数量。
13.根据权利要求7至11中的任一项所述的方法,其中,所述位置约束中的一个包括所述子集的第一过程自动化节点与生成由所述FBAP处理的传感器数据的传感器之间的网络跳跃的最大数量。
14.根据权利要求7至11中的任一项所述的方法,其中,所述位置约束中的一个包括所述子集的第一过程自动化节点与另一过程自动化节点之间的智能接线盒的最大数量。
15.根据权利要求7至11中的任一项所述的方法,其中,所述位置约束中的一个包括以下要求:所述子集的第一过程自动化节点和另一过程自动化节点共同位于其中实现所述过程自动化系统的至少一部分的过程自动化设施的房间中。
16.根据权利要求1至15中的任一项所述的方法,其中,所述分析包括:
识别所述多个过程自动化节点中的满足与所述FBAP的执行相关联的所述约束中的一个或更多个约束的第一候选过程自动化节点;
评估所述第一候选过程自动化节点的计算资源的实际或潜在耗尽;
基于所述评估,选择具有与所述第一候选过程自动化节点最接近的空间或网络关系的另一过程自动化节点,作为两个或更多个过程自动化节点的所述子集中的至少一个。
17.根据权利要求1至16中的任一项所述的方法,其中,所述FBAP包括要在所述多个过程自动化节点当中部署的多个FBAP中的第一FBAP,并且所述方法还包括:
基于所述多个FBAP的相应优先级,对所述多个FBAP进行排序;以及
针对以基于所述排序确定的顺序中的所述多个FBAP中的每个FBAP,选择在其上分布式部署所述FBAP的所述多个过程自动化节点的相应子集。
18.一种包括一个或更多个处理器和存储指令的存储器的系统,所述指令响应于由所述一个或更多个处理器执行所述指令,使所述一个或更多个处理器:
识别与过程自动化软件应用(FBAP)的执行相关联的一个或更多个约束;
基于所述一个或更多个约束,分析包括多个过程自动化节点的过程自动化系统;
基于所述分析,从所述多个处理节点中选择要在其上分布式部署所述FBAP的两个或更多个过程自动化节点的子集;以及
响应于所述子集的选择:
跨所述子集的所述两个或更多个过程自动化节点来分布式部署所述FBAP。
19.根据权利要求18所述的系统,还包括指令以:
将所述FBAP组装成多个功能块,其中,所述分布式部署包括在所述子集的所述两个或更多个过程自动化节点中的相应一个过程自动化节点的执行引擎上安装所述多个功能块中的相应一个功能块;以及
针对多个相应功能块中的每个相应功能块来生成一个或更多个通信模块,所述一个或更多个通信模块促进在所述多个功能块之间发布或订阅数据。
20.一种包括一个或更多个处理器和存储指令的存储器的系统,所述指令响应于由所述一个或更多个处理器执行所述指令,使所述一个或更多个处理器:
识别协作以在过程自动化系统内实现控制回路的多个功能块,以及所述控制回路的一个或更多个约束;
分析所述过程自动化系统的多个候选分布式控制节点(DCN),以从所述多个候选DCN中识别共同满足所述控制回路的所述一个或更多个约束的两个或更多个DCN的子集;以及跨由所述子集的所述两个或更多个DCN提供的执行引擎来分布式部署所述多个功能块。

说明书全文

过程自动化软件应用的分布式部署

背景技术

[0001] 过程自动化系统通常被实现为分布式计算环境,例如,具有大量过程自动化硬件,诸如连接到过程自动化网络的分布式控制节点(DCN)。功能应用程序(FBAP)控制过程自动化工作流的各个方面并且被部署在这些许多节点上的执行控制引擎(或简称为“执行引擎”)上,一些节点靠近过程自动化网络的“边缘”。在一些情况下,这些执行控制引擎可以被实现为虚拟机或其他类似的容器或者实现在虚拟机或其他类似的容器内,例如,在DCN上。发明内容
[0002] 日益被要求按照开放的过程自动化标准彼此通信的执行引擎为功能块提供执行环境,并且模糊关于各个过程自动化节点(例如,硬件架构、操作系统)的底层细节。当设计或维护过程自动化系统时,这表面上地从这些底层细节中释放管理员和设计者。然而,这些底层细节可能仍然与设计最佳过程自动化系统相关。
[0003] 本文描述了用于跨过程自动化系统的过程自动化节点自动和分布式部署功能块应用程序(FBAP)的实施方式。更具体地但不是排他地,本文描述的技术促进跨多个执行引擎的FBAP的分布式部署,同时考虑关于过程自动化节点的底层细节、过程自动化节点之间的关系、以及与FBAP相关联的约束。
[0004] 在各种实施方式中,可以通过分析FBAP(例如,诸如通过评估底层源代码)、描述一个或更多个FBAP的文档和/或其期望或所需行为、FBAP的运行时测试、手动输入等来识别与一个或更多个FBAP相关联的各种类型的约束。如本文所使用的,“源代码”是指用通用编程语言(诸如C、C++、Java、Python等)或更低级别语言(诸如汇编代码)编写的计算机指令,这些指令能够被编译成和/或解释为可执行计算机程序
[0005] 基于这些约束,可以分析包括多个过程自动化节点(执行多个执行引擎)的过程自动化系统,例如以确定过程自动化节点的操作参数和/或性能能(例如,DCN系统管理信息和能力),功能、空间、高可用性要求,和/或过程自动化节点之间的网络关系、和/或其他相关环境信息(例如,温度、湿度、颗粒物平等)。基于对过程自动化系统的分析,可以选择提供执行引擎的两个或更多个过程自动化节点的子集来部署FBAP。各种类型的过程自动化节点可以操作其中能够执行FBAP的一部分的执行引擎,诸如分布式控制节点(DCN)、具有处理能力的输入/输出节点、容器或虚拟机等。
[0006] 在一些实施方式中,一种方法可以使用一个或更多个处理器来实现,并且可以包括:识别与功能块应用过程(FBAP)的执行相关联的一个或更多个约束;基于一个或更多个约束来分析包括多个过程自动化节点的过程自动化系统;基于分析,从多个处理节点中选择要在其上分布式部署FBAP的两个或更多个过程自动化节点的子集;以及响应于选择子集:跨子集的两个或更多个过程自动化节点分布式部署FBAP。
[0007] 在各种实施方式中,方法可以包括将FBAP组装成多个功能块,其中,分布式部署包括在子集的两个或更多个过程自动化节点中的相应一个的执行引擎上安装多个功能块中的相应一个功能块。在各种实施方式中,组装可以包括针对多个相应功能块中的每个功能块来生成一个或更多个通信模块,该一个或更多个通信模块促进在多个功能块之间发布或订阅数据。
[0008] 在各种实施方式中,与FBAP的执行相关联的一个或更多个约束可以包括对能够在其上分布式部署FBAP的过程自动化节点的数量的限制。在各种实施方式中,可以基于多个过程自动化节点的可用计算资源来确定对过程自动化节点的数量的限制。
[0009] 在各种实施方式中,与FBAP的执行相关联的一个或更多个约束包括用于执行包括或由FBAP实现的控制回路的时间限制。在各种实施方式中,与FBAP的执行相关联的一个或更多个约束包括一个或更多个位置约束。在各种实施方式中,位置约束中的一个或更多个被施加在FBAP的两个或更多个功能块之间。在各种实施方式中,位置约束中的一个包括子集的第一过程自动化节点与另一过程自动化节点之间的最大物理距离。在各种实施方式中,方法还包括基于在子集的第一过程自动化节点与另一过程自动化节点之间使用的通信协议来确定最大物理距离。在各种实施方式中,另一过程自动化节点可以包括生成由FBAP处理的传感器数据的传感器。
[0010] 在各种实施方式中,位置约束中的一个包括子集的第一过程自动化节点与另一过程自动化节点之间的网络跳跃(hop)的最大数量。在各种实施方式中,位置约束中的一个包括子集的第一过程自动化节点与生成由FBAP处理的传感器数据的传感器之间的网络跳跃的最大数量。在各种实施方式中,位置约束中的一个包括子集的第一过程自动化节点与另一过程自动化节点之间的智能接线盒的最大数量。在各种实施方式中,位置约束中的一个可以包括以下要求:子集的第一过程自动化节点与另一个过程自动化节点共同位于其中实现过程自动化系统的至少一部分的过程自动化设施的房间中。
[0011] 在各种实施方式中,分析包括:识别多个过程自动化节点中满足与FBAP的执行相关联的约束中的一个或更多个约束的第一候选过程自动化节点;评估第一候选过程自动化节点的计算资源的实际或潜在耗尽;基于评估,选择具有与第一候选过程自动化节点最接近的空间或网络关系的另一过程自动化节点,作为两个或更多个过程自动化节点的子集中的至少一个。
[0012] 在各种实施方式中,FBAP可以是要在多个过程自动化节点之间部署的多个FBAP中的第一FBAP,并且方法还可以包括:基于多个FBAP的相应优先级对多个FBAP进行排序;以及针对以基于排序确定的顺序中的多个FBAP中的每个FBAP,选择多个过程自动化节点的在其上分布式部署FBAP的相应子集。
[0013] 另外,一些实施方式包括一个或更多个计算设备的一个或更多个处理器,其中,一个或更多个处理器可操作以执行存储于相关联的存储器中的指令,并且其中,所述指令被配置以使前述方法中的任一个执行。一些实施方式还包括存储计算机指令的一个或更多个非暂时性计算机可读存储介质,所述计算机指令可由一个或更多个处理器执行以执行前述方法中的任一个。
[0014] 应当理解,本文更详细地描述的前述概念和附加概念的所有组合被设想为本文公开的主题的一部分。例如,在本公开的结束处出现的要求保护的主题的所有组合被认为是本文公开的主题的一部分。附图说明
[0015] 图1示意性地描绘了根据各种实施方式的其中可以实现本公开的选定方面的示例过程自动化环境。
[0016] 图2示意性地描绘了根据各种实施方式的被配置有本公开的选定方面的各种组件如何可以协作以促进FBAP的分布式部署的示例。
[0017] 图3和图4示意性地描绘了根据各种实施方式的功能块如何可以在多个DCN的多个执行引擎之间分布式部署的示例。
[0018] 图5示出了用于执行本公开的选定方面的示例方法。
[0019] 图6示出了用于执行本公开的选定方面的示例方法。
[0020] 图7示意性地示出了可以在其上实现本公开的选定方面的示例计算机架构。

具体实施方式

[0021] 本文描述了用于跨过程自动化系统的过程自动化节点自动和分布式部署功能块应用程序(FBAP)的实施方式。在各种实施方式中,可以通过分析一个或更多个FBAP底层(underlying)的源代码、描述一个或更多个FBAP的文档和/或其期望或所需行为、FBAP的运行时测试、手动输入等来识别与一个或更多个FBAP相关联的各种类型的约束。基于这些约束,可以分析包括多个过程自动化节点的过程自动化系统,例如以确定过程自动化节点的操作参数和/或性能能力,以及过程自动化节点之间的功能、空间、和/或网络关系。基于对过程自动化系统的分析,可以选择提供合适的执行引擎的两个或更多个过程自动化节点的子集来部署FBAP。各种类型的过程自动化节点可以提供其中能够执行FBAP的一部分的执行引擎,诸如分布式控制节点(DCN)、具有处理能力的输入/输出节点、或虚拟机等。
[0022] 可以以各种方式分析过程自动化系统。在一些实施方式中,可以例如使用诸如自然语言处理标记语言处理、光学字符识别(OCR)、对象识别、图形分析等技术来分析诸如输入/输出(I/O)概要或列表、过程流程图(PFD)、流水线和仪表图(P&ID)等文档,以识别上述操作参数和/或过程自动化节点的性能能力、和/或它们之间的各种类型的关系。在其他实施方式中,关于过程自动化系统的信息可以存储在一个或更多个数据库中,例如,当构建过程自动化系统时,并且可以利用这些数据来分析过程自动化系统。
[0023] 在一些实施方式中,可以使用系统地浏览、映射和/或索引过程自动化系统的各种过程自动化节点的网络爬虫来识别过程自动化节点之间的网络关系。附加地或可替选地,可以针对网络关系数据来查询网络资源,诸如域名服务器(DNS)路由表和其他联网组件(例如,路由器、交换机)。
[0024] 可以例如从包含在蓝图、P&ID文档、过程自动化设施的地图中的数据、或通过确定物理过程自动化节点(诸如DCN)的定位坐标来确定过程自动化节点之间的空间关系。物理过程自动化节点的定位坐标可以以各种方式确定,诸如通过使用无线三测量、全球定位系统(GPS)坐标、或经由由人类或机器人执行的定位。过程自动化设施的地图可以用于通过识别在其中物理地托管过程自动化节点的诸如现场设备房间(FERs)或中央控制房间(CCR)的限定区域来确定(或至少估计)过程自动化节点之间的空间关系。这些房间之间(例如,在它们的中心之间或在入口/出口点之间)的物理距离可以用作容纳在其内的过程自动化节点之间的代理距离。
[0025] 可以选择和/或设计关于FBAP的执行的约束以确保以及时、可预测和/或一致的方式来执行任务关键过程。FBAP可以服从各种类型的约束。性能约束可以包括例如对能够以分布式方式实现FBAP的过程自动化节点的数量的限制。在多个设备上实现特别关键的FBAP可能被认为险太大,尤其是如果这些设备中的一些不满足可靠性或可用性的一些标准。更一般地,在一些实施方式中,可以向FBAP分配最小可靠性阈值,并且可以仅选择也满足这些阈值(单独地或共同地)的过程自动化节点用于部署。
[0026] 附加地或可替选地,性能约束可以包括用于执行诸如基于(多个)传感器信号来操作控制回路的一部分或发出警报的任务的时间限制。例如,特定控制回路可以依赖于在特定频率处或特定时间间隔内处理的传感器信号。如果不满足该频率或时间间隔,则可能发生不利的后果(例如,意外的化学反应、不适当的处理、安全危险、部件故障)。用于FBAP执行的时间限制可以手动地设置,或者可以例如基于在底层源代码中包含的(多个)时间限制而自动地确定。
[0027] FBAP的位置约束可以包括例如实现FBAP的全部或部分的过程自动化节点之间、和/或实现FBAP的全部或部分的过程自动化节点与其他过程自动化节点(诸如生成由FBAP处理的传感器数据的传感器)之间的最大物理距离。在一些实施方式中,位置约束可以包括实现或与FBAP交互的过程自动化节点之间的网络跳跃和/或智能接线盒(SJB)的最大数量。
[0028] 在一些实施方式中,可以基于彼此和/或基于其他因素(诸如施加在FBAP上的时间限制约束)来动态地选择最大距离、最大网络跳跃、能够在其上部署FBAP的节点的最大数量、和/或最大SJB约束。例如,可以至少部分地基于在涉及FBAP的实施方式的过程自动化节点之间使用的通信协议来确定最大物理距离约束。数据可以比例如Wi‑Fi、ZigBee或Z‑Wave更快地和/或以更高的以太网数据速率行进。因此,当问题中的节点通过一系列以太网连接来连接时,所允许的最大物理距离可以大于当使用Wi‑Fi(其可能呈现瓶颈)实现节点之间的一个或更多个跳跃时的最大物理距离。在一些情况下,可以基于施加在FBAP上的时间限制来进一步计算在FBAP的各方面之间允许的最大距离和/或网络跳跃。
[0029] 当评估过程自动化系统时,也可以考虑环境数据。例如,过程自动化节点可以具有有限的温度容限(冷的或热的)。各种因素能够有助于过程自动化节点达到甚至超过这些温度容限。例如,过程自动化节点可能因计算任务而负担过重,这会从内部增加其温度。附加地或可替选地,诸如设备、化学品、热源等节点环境中的(多个)热源可以增加节点的温度。同样,一些化学品和/或工艺(例如,需要施加液氮的化学品和/或工艺)可以降低低于过程自动化节点的容限的环境温度。因此,在各种实施方式中,当评估用于功能块的潜在部署的过程自动化节点时,可以考虑由(例如,过程自动化节点内部、在接线盒处或接线盒内、FERs等中的)温度传感器测量的温度。过程自动化节点的其他容限,诸如微粒、空气酸度、湿度等的容限,可以以类似的方式考虑。
[0030] 在许多情况下,要在过程自动化系统中实现的FBAP的数量可能有数千个。类似地,可能存在数百或数千个可能用于实现各个FBAP(诸如功能块)的全部或部分的过程自动化节点。为了减少对跨过程自动化节点的FBAP分配的所有潜在排列执行强力分析可能以其他方式需要的时间和/或计算资源,在一些实施方式中,可以例如手动地和/或自动地为FBAP分配优先级。这些优先级可以用于对FBAP进行排序,使得过程自动化节点能够被选择和用于首先部署更高优先级的FBAP。随着跨过程自动化节点分布式部署更高排序的FBAP,可以例如基于与剩余的未指派的FBAP的执行相关联的约束、以及由先前部署产生的其他因素(诸如节点和/或其环境的增加温度)来重新评估过程自动化系统的计算资源。然后可以基于重新评估来部署更低排序的FBAP。
[0031] 如本文所使用的,“FBAP”包括在过程自动化系统内由一个或更多个过程自动化节点协作地实现的任何过程,通常很少或没有人为干预。在一些情况下,FBAP自动化的程度可以沿着自动化的梯度、范围或规模存在。部分自动化但仍需要人为干预的过程可以在规模的一端处或附近。需要较少的人工干预的过程可以接近规模的另一端,其表示完全自主的过程。过程自动化通常可以用于使各种领域中的过程自动化,例如,化学品(例如,化学处理)、催化剂、机械等的制造、开发和/或细化。
[0032] FBAP的一个常见示例是其中基于一个或更多个传感器的输出自动地(没有人为干预)操作一个或更多个致动器的过程回路。在许多情况下,FBAP可以逻辑地划分为在本文中将被称为“功能块”的不同的逻辑模块或构建(builds)。每个功能块可以整体执行FBAP的一个或更多个子方面。在各种实施方式中,可以跨使用本文描述的技术选择的多个过程自动化节点分布式部署形成FBAP的多个功能块。如本文所使用的,“过程自动化节点”可以指DCN、其他类型的控制器、输入/输出节点、虚拟机、以及能够操作其中能够在其上部署(多个)功能块的执行引擎的任何其他计算组件。
[0033] 现在参照图1,示意性地描绘了其中可以实现本公开的各方面的示例环境100。过程自动化管理系统102与过程自动化设施108中的过程自动化网络106可操作地耦合。过程自动化设施108(在本文中可替选地称为“过程自动化系统108”)可以采取多种形式并且可以被设计为实现任何数量的至少部分自动化过程。例如,过程自动化设施108可以形成化学加工厂、石油或天然气精炼厂、催化剂工厂、制造设施等的全部或部分。
[0034] 可以使用各种有线和/或无线通信技术来实现过程自动化网络106,包括但不限于电气和电子工程师协会(IEEE)802.3标准(以太网)、IEEE 802.11(Wi‑Fi)、诸如3GPP长期演进(“LTE”)的蜂窝网络或被指定为3G、4G、5G和更高的其他无线协议、网格网络、和/或各种类型的拓扑(例如,网格)的其他类型的通信网络。过程自动化通常用于其中故障成本倾向于很大的场景,包括人员安全和利益相关者的财务成本。因此,在各种实施方式中,过程自动化网络106可以被配置有冗余和/或备份以提供高可用性(HA)和/或高服务质量(QoS)。附加地,在过程自动化网络106上交换数据的节点可以实现时间敏感联网(TSN)以促进时间同步和/或实时控制流。
[0035] 过程自动化管理系统102可以包括匹配引擎103、工厂数据进口(PDI)104、以及存储由PDI 104和匹配引擎103使用以实践本公开的选定方面的信息的数据库105。可以组合并且可以使用硬件和软件的任何组合来实现过程自动化管理系统102的各方面,诸如匹配引擎103和/或PDI 104。在一些实施方式中,过程自动化管理系统102可以跨多个计算机系统实现为通常被称为“基础设施”或简称为“云”的一部分。然而,这是不需要的,并且在图1中,例如,在过程自动化设施108内,例如在单个建筑中或跨单个建筑群或其他工业基础设施实现过程自动化管理系统102。在这样的实施方式中,可以在一个或更多个本地计算系统上,诸如在一个或更多个服务器计算机上实现过程自动化管理系统102。
[0036] 除了过程自动化管理系统102之外,各种其他节点/设备可操作地与过程自动化网络106耦合。在图1中,例如,N(正整数)个DCN 1101‑N与过程自动化网络106可操作地耦合。每个DCN可以包括可以采取各种形式的电路或逻辑112,诸如执行存储器中的指令的(多个)处理器、现场可编程阵列(FPGA)、专用集成电路(ASIC)等。DCN 110的范围可以以硬件能力从小型单板计算机(具有或不具有I/O)到高可用性机架安装式服务器。
[0037] 每个DCN 110可以在过程自动化设施108中扮演一个或更多个角色。例如,“计算”DCN可以控制过程回路(例如,化学过程回路),其中各种“现场”设备(例如,具有传感器和/或致动器的设备)彼此介接以执行某个数量的功能控制块(FB)。虽然图1中未描绘,但在各种实施方式中,每个逻辑112可以操作能够部署FBAP的(多个)功能块的一个或更多个执行引擎。在图2中描绘了示例执行引擎。
[0038] 每个DCN 110可以具有指示其操作技术(OT)能力、并且更一般地,其在过程自动化设施108处的角色中的至少一些的各种输入/输出(I/O)和其他硬件组件。OT能力在各行业之间可能变化很大。在一些情况下,OT能力可以包括但不限于I/O通道的计数;可用的(多个)I/O通道的(多个)类型;标称范围限制;测量的(多个)标称单位;标称更新频率;一个或更多个模数转换参数;一个或更多个信号调节参数;支持的开放标准协议,诸如开放平台通信(OPC)统一架构(OPC UA)和/或Modbus;或其任何组合。
[0039] 在图1中,第一DCN 1101与流量变送器(FT)组件1141和致动器(例如,)116可操作地耦合。第二DCN 1102与FT组件1142和传感器1182可操作地耦合,但没有致动器。第三DCN 1103可操作地与传感器1183耦合,但没有致动器。致动器116可以是可控制的以影响在过程自动化设施108处发生的过程自动化工作流的一些方面的任何电动、液压、机械和/或气动组件。在许多情况下,致动器116可以响应于各种信号(诸如来自计算DCN(其自身可以监测传感器信号)的传感器信号或命令)来执行其功能。致动器116的一些非限制性示例包括但不限于阀、活塞转子开关、加热器、冷却器、搅拌器、喷射器、产生真空的设备、带、轨道、齿轮、夹具、达、继电器、伺服机构等。传感器118可以采取各种形式,包括但不限于压力传感器、温度传感器、流量传感器(例如,FT组件114)、各种类型的接近传感器、光传感器(例如光电二极管)、压力波传感器(例如麦克风)、湿度传感器(例如湿度计)、辐射剂量计、激光吸收光谱仪(例如多通光学单元),等等。
[0040] 与DCN 1101‑3不同,DCNN不包括任何输入/输出(致动器或传感器)。相反,DCNN可以是“仅计算”DCN,其角色是促进自身与在过程自动化网络106上的一个或更多个其他DCN 110之间的协作以实现至少部分自动化的过程。例如,DCN 110N可以控制涉及一个或更多个其他DCN 110的单个过程回路(例如,化学过程控制回路)。在一些情况下,这样的计算DCN 
110可以执行类似于飞机上的自动驾驶仪的角色——计算DCN 110可以接收各种信号,并且基于这些信号和各种标准和/或阈值来控制各种致动器。例如,计算DCN 110可以监测各种传感器118和/或FT组件114以确定关于化学水平、流量速率(例如,跨多个阀)、罐温度、控制速率等的数据,并且可以基于这些数据和/或这些数据与各种标准和/或阈值的比较来控制一个或更多个致动器116。例如,计算DCN 110N能够通过向第一DCN 1101传输能够可选地符合特定于第一DCN 1101和/或由第一DCN 1101实现的协议的(多个)对应命令来控制致动器
116。
[0041] 在各种实施方式中,可以在两个或更多个DCN的兼容的有线或无线通信接口113之间建立一个或更多个带外通信信道109,诸如在图1中的DCN 1101‑3之间。带外通信信道109可以在过程自动化系统108的过程自动化网络106之外(例如,与之分离、使用不同的通信技术实现等)。虽然图中描绘了单个带外通信信道109,但这并不意味着是限制性的。可以在任何数量的过程自动化节点之间建立任何数量的带外通信信道。
[0042] 在其中使用以太网实现过程自动化网络106的场景中,在一些实施方式中,DCN 110与过程自动化网络106之间的连接107可以是注册插孔(RJ)45连接。在许多这样的情况下,可以使用诸如USB、NFC、蓝牙等不同通信技术来实现带外通信信道109。然而,在其他实施方式中,可以使用与过程自动化网络106相同类型的通信技术(例如以太网)来实现带外通信信道109,尽管是作为来自过程自动化网106的被沙盒化的独立网络/子网。在各种实施方式中,带外通信信道109可以通信地耦合两个以上的过程自动化节点的通信接口113,如图1中的情况,并且因此可以可替选地被称为“带外网络”。
[0043] 管理过程自动化系统108可能呈现各种技术挑战。可能存在数百甚至数千个需要跨类似的大量过程自动化节点实现的FBAP。每个FBAP可能经受与例如性能、位置、时延等相关的各种约束。例如,一些FBAP或其各方面(例如,功能块)可能需要在某个时间限制内完全执行。如果功能块分布在由高时延网络连接所连接的过程自动化节点之间,则存在该时间限制将被违反的风险,这能够导致无数负面结果,诸如损坏或失败的化学过程。
[0044] 可替选地,每个过程自动化节点可以具有不同的信息技术(IT)和/或OT能力。一旦至少部分地分布式部署了FBAP,这些IT和/或OT能力就可以改变。例如,DCN的计算资源(例如,存储器、处理器周期)可能变得耗尽,DCN的内部温度可能接近其温度阈值,和/或节点的输入/输出元件可能不再可用。总之,在大量的过程自动化节点之间分配大量的FBAP往往是劳动密集的,往往需要大量的专业知识和/或经验,并且容易出现人为错误。
[0045] 因此,本文描述了用于跨过程自动化系统的过程自动化节点自动部署FBAP的实施方式。在各种实施方式中,PDI 104可以例如通过处理(例如,解析、执行OCR、NLP等)各种示意图、源代码、规范、I/O概要/列表、控制叙述、P&ID文档等来分析过程自动化系统108,以处理(例如,组织成数据结构、去重复、规范化等)包含在其内的数据。关于过程自动化系统108的这些数据可以存储在例如数据库105中。一旦被处理并存储在数据库105中,这些数据然后可以由本文描述的各种组件使用以跨多个过程自动化节点分布式部署FBAP。
[0046] 基于由PDI 104执行的分析,匹配引擎103可以被配置为将FBAP和/或其各方面(例如,功能块)与合适的执行引擎进行匹配。例如,匹配引擎103可以被配置为从分布式部署FBAP的形成过程自动化系统的多个处理节点1101‑N中选择两个或更多个过程自动化节点的子集。该选择可以基于与FBAP的执行相关联的约束,以及作为整体的过程自动化系统108的任何数量的各方面、单独的过程自动化节点(例如1101‑N)、过程自动化网络106的物理和/或虚拟网络拓扑或其部分、(多个)带外通信信道109,过程自动化设施108的物理布局,测量的环境参数,诸如温度、湿度、颗粒物、空气酸度等。
[0047] 图2示意性地描绘了根据各种实施方式的被配置有本公开的选定方面的各种组件如何可以协作以促进FBAP的分布式部署的示例。在图2中,计算设备220(描绘为膝上型计算机,但这并不意味着是限制性的)执行可以由用户(未示出)操作以在多个过程自动化节点1101‑N之间分布式部署FBAP的集成开发环境(IDE)222。更具体地,IDE 222可以由用户操作以在由多个过程自动化节点1101‑N提供的多个执行引擎2381‑X之间分布式部署(例如,编译和安装)FBAP。如上所述,手动地执行这种分布式部署可能是劳动密集型的、繁琐的和/或易于导致错误。
[0048] 多个执行引擎2381‑X可以采用各种形式。在一些实施方式中,执行引擎238可以是经由DCN 110的计算资源(例如,存储器、处理器)促进的并且使DCN 110的底层硬件和/或操作系统细节模糊的计算环境。作为一个示例,执行引擎238可以采取被配置为执行、解释或以其他方式实现功能块的虚拟机(诸如Java虚拟机(JVM))的形式。为此,功能块可以采取各种形式,诸如完全编译的二进制、可执行字节码等等。一些过程自动化节点(诸如DCN 110N)可以提供多个执行引擎238X‑Y。
[0049] PDI 104可以被配置为从各种不同的源获得、检索、捕获、接收或以其他方式处理关于过程自动化系统108的各种不同类型的数据。这些数据可以包括例如标签信息224、物理布局信息226、网络拓扑信息228、执行引擎(图2中的“X.E”)能力230、FBAP能力232、FBAP约束234和高可用性(HA)约束235。PDI 104可以使用各种技术(诸如NLP、OCR等)来分析这些数据224‑235,并且将各种方面和/或所提取的特征存储在数据库105中。
[0050] 标签信息224可以包括被分配给例如FBAP、各个过程节点等的“标签”。标签可以是字母数字串或其他标记,其提供例如这些元件应该在过程自动化系统中扮演什么角色和/或这些元件应该执行的任务类别的指示。标签可以被分配给例如过程控制回路。也应该与该过程控制回路的执行相关联的任何FBAP或过程自动化节点(例如,DCN、传感器等)可以被分配相同的标签。在一些实施方式中,标签可以是高度有影响力的,甚至是决定性的,关于FBAP被分布式部署到哪个(多个)过程自动化节点的哪个执行引擎238。以这种方式,分配给FBAP的标签可以用于确定一个或更多个FBAP约束234。例如,被分配相同标签的两个FBAP可以被约束为部署在过程自动化节点的执行引擎238上,该过程自动化节点在彼此相距网络跳跃的某个最大数量内,或者共同位于同一房间(例如,FER或CCR)内。
[0051] 物理布局信息226可以包括架构图、地图、示意图、P&ID、过程流程图、在机器人执行SLAM(同时定位和地图绘制)时收集的信息等,其阐述了过程自动化系统的组件和/或房间/区域的物理布局。PDI 104可以从这样的数据提取各种类型的特征和/或其他信息,包括但不限于过程自动化节点之间的空间关系、其中容纳过程自动化节点的房间(例如,FERs、CCR)等。
[0052] 网络拓扑信息228可以包括关于过程自动化网络106的一个或更多个部分的一个或更多个物理和/或虚拟网络拓扑的信息。该数据可以包括例如子网的位置和/或布置、局域网、无线网络(包括它们的有效范围)、网络的带宽、(多个)带外信道109的位置和/或带宽等。在一些实施方式中,该网络拓扑信息可以被手动地,例如由IT人员输入。附加地或可替选地,在一些实施方式中,网络拓扑信息228可以例如由自动地映射出计算机网络的一个或更多个软件过程(有时称为“机器人”或“爬行器”)自动确定。PDI 104可以以各种形式表示和/或存储数据库105中的该网络拓扑信息228,例如,作为路由表、网络节点的表、其中节点表示过程自动化系统108的组成元素的图以及表示连接这些组成元素的过程自动化网络106的部分的边缘等。
[0053] 执行引擎(X.E.)能力信息230可以包括与实现各个执行引擎238的过程自动化节点110相关联的计算资源,诸如存储器、处理周期、OT能力、(多个)带外信道(例如,109)到其他节点的可用性、处理速度、(多个)处理器规范、网络带宽等。处理器规范可以包括但不限于处理器类型、时钟速度、总线速度、寄存器、算术逻辑单元(ALU)的类型等。诸如DCN 1101‑N的过程自动化节点可以包括各种类型的处理器,诸如通用中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)等。在诸如DCN 110的过程自动化节点提供一个执行引擎238的情况下,这些执行引擎能力可以简单地对应于节点本身的硬件,诸如可用的存储器、处理周期或速度、网络带宽等。在诸如DCN 110N的过程自动化节点提供多个执行引擎238X‑Y的情况下,DCN 110N的执行能力作为一个整体可以在多个执行引擎之间分配。
[0054] FBAP能力232可以包括例如由FBAP执行的一个或更多个任务、由过程自动化系统108中的FBAP扮演的一个或更多个角色、组成FBAP组件(例如,功能块)的能力和/或角色等。
与FBAP或其组成组件的执行相关联的FBAP约束234可以包括,例如,时间限制、位置约束(例如,FBAP或FBAP的组件之间的最大距离、基于房间的约束)、安全约束、跨能够分布式部署FBAP的节点的最大数量、网络约束(例如,时间敏感网络或“TSN”,元件之间允许的最大网络跳跃等)、可靠性约束(例如,允许的停机时间)等。高可用性约束235可以包括规则、策略或管理过程自动化的各方面(诸如允许的停机时间或所需的运行时间)的其他启发法、服务质量等。
[0055] 匹配引擎103可以被配置为分析存储在数据库中的各种所提取的数据(例如,224‑235)以便将FBAP自动地匹配到合适的过程自动化节点以进行部署。例如,在图2中,匹配引擎103可以生成功能块分配236,该功能块分配236指示FBAP应当被分布式部署到执行引擎
2381‑Y中的哪一个,并且因此指示FBAP应当被分布式部署到过程自动化节点1101‑N中的哪一个。
[0056] 在一些实施方式中,在IDE 222处手动地输入的用户选择或定义的FBAP组件(例如,功能块)可以单独地或与用户选择的到过程自动化节点的那些FBAP组件的分配相结合地导出到匹配引擎103,如箭头所示。以这种方式,大量候选过程自动化节点之间潜在地大量FBAP的部署可以至少部分地由用户自举或以其他方式引导。由匹配引擎103执行的操作可以基于由PDI 104处理并存储在数据库105中的各种数据224‑235对这些用户选择的FBAP部署进行增强、更改、替换等。例如,本文描述的技术可以用于在用户设计过程自动化系统时生成在IDE 222处呈现给用户的推荐、警报或其他有用的反馈。
[0057] 在其他实施方式中,匹配引擎103从头开始并且可以做出关于FBAP的部署的所有决定。在一些这样的实施方式中,匹配引擎103、PDI 104、或另一组件可以识别和/或定义(例如,规划)诸如功能块的FBAP组件。附加地或可替选地,操作IDE 222的用户可以手动地识别和/或定义这些功能块。在任何情况下,分布式部署的结果都可以在IDE 222处呈现给用户。IDE 222的用户可以具有各种机会以查看,并且在需要时改变DCN 1101‑N的执行引擎2381‑Y之间分配的FBAP的部署。
[0058] 图3和图4示意性地描绘了根据各种实施方式的功能块如何可以在多个FBAP中分布式部署的示例。在图3中,FBAP 350包括两个回路3521和3522。第一回路3521包括五个功能块3541‑5。第一功能块3541包括可以从例如传感器获得模拟输入的第一模拟输入(AI)过程3561。第一AI过程3561的输出被提供给例如第一比例‑积分‑微分(PID)控制器3581,其可以基于由第一AI过程3561提供的模拟输入来执行各种操作。在图3中,第一PID控制器3581将基于该输入生成的输出提供给第二PID控制器3582,该第二PID控制器3582自身在第三功能块
3543上操作。
[0059] 第二AI过程3562还可以例如从传感器获得其可以向第二PID控制器3582提供的模拟输入。类似于第一PID控制器3581,第二PID控制器3582可以基于其从第一和第二AI过程3561‑2接收的输入而输出各种数据和/或执行各种操作。由第二PID控制器3582输出的数据可以包括例如控制过程自动化变量(诸如流量调节、温度、压力等)的数据。在图3中,第二PID控制器3582将其输出(例如,命令)提供给作为第五功能块3545的一部分的第一模拟输出(AO)过程3601。第一AO过程3601可以例如基于其使用(多个)模拟输出信号接收到的数据来操作致动器(例如,116)。
[0060] 第二回路3522包括三个功能块3546‑8。第六功能块3546包括可以从例如传感器获得输入的第三AI过程3563。第三AI过程3563可以将该传感器数据作为输出提供给第三PID控制器3583。类似于其他PID控制器,第三PID控制器3583可以基于其从第三AI过程3563接收到的传感器数据而发出执行各种操作和/或输出各种数据。例如,第三PID控制器3583可以向第二AO过程3602输出数据,该第二AO过程3602进而可以基于从第三PID控制器3583接收到的数据来控制致动器或其他组件。
[0061] 图4示意性地描绘了图3中描绘的各种组件如何能够在由多个过程自动化节点执行的多个执行引擎2381‑3之间分布式部署的示例,在该示例中,该多个过程自动化节点包括具有三个对应逻辑3121‑3的三个DCN 3101‑3。第一回路3521的第一、第二和第四功能块3541、3542和3544已经被分配给由第一DCN 3101执行的第一执行引擎2381,该第一DCN 3101本身包括传感器118和第一FT组件3141。传感器118可以生成由第一AI过程3561捕获的传感器数据并且FT组件3141可以生成由第二AI过程3542捕获的传感器数据。第三功能块3543已经被分配给由第二DCN 3102执行的第二执行引擎2382,该第二DCN 3102本身不包括任何输入或输出元件。
[0062] 第五功能块3545(其包括第一AO过程3601),已经被分配给由第三DCN 3103执行的第三执行引擎2383,该第三DCN 3103本身包括第二FT组件3142和第一和第二致动器3161‑2。第八功能块3548(其包括第二AO过程3602),还被分配给第三DCN 3103。因此,第一AO过程
3601可以控制致动器3161‑2中的一个并且第二AO过程3602可以控制另一个。
[0063] 作为功能块3541和3542的一部分,第一AI过程3561和第一PID控制器3581被分别分配给相同的DCN 3101。因此,它们能够经由第一DCN 3101的总线和/或电路在本地交换数据。相比之下,作为第四功能块3544的一部分,第二AI过程3562被分配给一个过程自动化节点(第一DCN 3101),但是第二AI过程3562将其输出发送到其中第二PID控制器3582(以及第三功能块3543)被分配到的不同的过程自动化节点,即,第二DCN 3102。
[0064] 因此,为了跨不同的过程自动化节点分布式部署FBAP(例如,第一回路3521或第二回路3522)或其部分,在各种实施方式中,可以实现在本文中也被称为“发布”和“订阅”组件的通信模块以促进这些组件之间的通信,例如,跨(多个)计算机网络。例如,为了第二AI过程3562向第二PID控制器3582提供其输出,已经与第四功能块3544相关联地生成发布(图3中的“PUB”)组件(例如,作为第一执行引擎2381的一部分)。同样地,已经与第三功能块3543相关联地生成订阅(图3中的“SUB”)组件(例如,作为第二执行引擎2382的一部分,被描绘为第二PID控制器3582的紧左侧)并且已经订阅了由第四功能块3544的发布组件发布的数据。在图3中针对已经跨不同的过程自动化节点分布的其他FBAP组件(例如,功能块)描绘了类似的发布和订阅组件。
[0065] 在一些实施方式中,可以由执行引擎238基于分配给它们的功能块来生成发布和订阅组件。可替选地,发布和订阅组件可以被预编译并且链接到功能块的输入和/或输出,例如在部署期间。发布或订阅组件可以采取各种形式,诸如附加功能块(例如,专门创建以实现其他功能块之间的通信)、由执行引擎238根据例如开放标准提供的标准接口、符合代表性状态转移(REST)架构样式的web应用编程接口(API)、软件网络接口、远程过程调用、端口、网络套接字等。
[0066] 图5是示出根据本文公开的实施方式的用于实践本公开的选定方面的示例方法500的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如PDI 104和/或匹配引擎103,和/或诸如DCN 1101‑N中的任一个的其他设备。此外,虽然以特定顺序示出了方法500的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或更多个操作。
[0067] 在框502处,系统(例如,通过PDI 104(如果在进口期间)或匹配引擎103(如果在分布式部署期间))可以识别与FBAP的执行相关联的一个或更多个约束。约束的各种示例已经在本文其他地方描述,并且包括例如位置约束、时间限制、网络约束、计算资源约束等。作为整体的FBAP(例如,3521或3522)可能受到各种约束,和/或FBAP的各个组件,诸如功能块(例如,3541‑5,3546‑8)可能受到约束。约束可以由PDI 104识别,例如,通过分析包含在FBAP底层的(多个)源代码文件中、与FBAP相关的文档中、来自手动提供的约束(例如,在IDE 222处提供的)、来自与FBAP相关联的标签(例如,224)等的评论和/或(多个)代码片段。可以由匹配引擎103,例如从存储在数据库105中的数据232‑235来识别约束。
[0068] 在框504处,系统(例如,通过匹配引擎103)可以基于一个或更多个约束来分析包括多个过程自动化节点(例如,DCN 1101‑N、DCN 3101‑3)的过程自动化系统(例如,108),该多个过程自动化节点在许多情况下提供多个执行引擎(例如,图2中的2381‑Y,图4中的2381‑3)。具体地,匹配引擎103可以分析存储在数据库105中和/或实时获得的数据和/或特征(例如,由PDI 104处理的)。这些数据和/或特征可以包括但不限于计算资源和/或能力(例如,
230)、网络拓扑(例如,228)、位置信息(例如,226,能够包括例如位置坐标、特定房间或区域内的放置等)、测量的环境因素(诸如温度和/或湿度)等。
[0069] 在一些实施方式中,可以分阶段跨过程自动化系统分布式部署FBAP。早期部署可能影响后续部署,因为例如计算资源可能随着FBAP被分布式部署而变得耗尽或紧张,和/或个体节点和/或它们在其中操作的环境可能随着计算紧张的增加而经历升高的温度。因此,在一些实施方式中,框504的分析可以包括:识别多个过程自动化节点中满足与FBAP的执行相关联的约束中的一个或更多个约束的第一候选过程自动化节点,以及评估第一候选过程自动化节点的计算资源的实际或潜在耗尽。该评估可以包括例如监测第一候选过程自动化节点的存储器和/或CPU使用,并且将其与当前考虑的FBAP相关联的(多个)约束进行比较。基于该评估,如果第一候选过程自动化节点负担过重或可能负担过重(和/或过热),则可以替代选择具有(i)足够的计算资源和(ii)与第一候选过程自动化节点最接近的空间或网络关系的另一过程自动化节点。
[0070] 基于框504的分析,在框506处,系统(例如,通过匹配引擎103)可以从多个处理节点中选择要在其上分布式部署FBAP的两个或更多个过程自动化节点(或更具体地,执行引擎)的子集。在各种实施方式中,匹配引擎103可以选择满足在框502处被识别的FBAP约束的过程自动化节点。例如,如果需要FBAP执行在某个时间限制内的控制回路,则可以选择将共同能够在该时间限制内执行控制回路的过程自动化节点。满足这样的时间约束的节点的能力可以基于各种因素,诸如执行引擎能力(230)、鉴于已经部署的FBAP组件的计算资源的可用性、节点之间的空间距离(数据可能需要更多的时间以在更大的距离上行进)、节点之间的网络跳跃、带外信道的可用性或特性、节点之间的智能接线盒(智能接线盒在一些情况下可能影响时延和/或带宽)等。
[0071] 响应于在框506处选择子集,在框508处,系统例如通过匹配引擎103和/或IDE 222可以跨子集的两个或更多个过程自动化节点分布式部署FBAP。在一些实施方式中,该分布式部署可以包括在框510处将FBAP底层的源代码编译成多个构建,例如,字节码或二进制功能块。例如,在框506处由匹配引擎103确定的功能块分配可以作为应用数据被传送到诸如所分配的过程自动化节点110的执行引擎238的组件。可以例如从所分配的过程自动化节点向IDE 222提供该应用数据。基于该应用数据,IDE 222可以编译FBAP并且将所得到的构建部署到所分配的过程自动化节点。
[0072] 在一些实施方式中,该分布式部署可以包括在框512处,将多个功能块中的相应一个功能块安装在子集中的两个或更多个过程自动化节点中的相应一个过程自动化节点上。在一些实施方式中,功能块可以在其上部署的过程自动化节点上编译。在其他实施方式中,功能块可以被远程编译或以其他方式生成,转换成二进制可执行文件、字节码文件、可执行脚本等,然后被推送到目标过程自动化节点。
[0073] 图6是示出根据本文公开的实施方式的用于实践本公开的选定方面的示例方法600的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如PDI 104和/或匹配引擎103,和/或诸如DCN 1101‑N中的任一个的其他设备。此外,虽然以特定顺序示出了方法600的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或更多个操作。
[0074] 在框602处,系统(例如,在操作IDE 222的用户的命令下或自动地)可以将输入和/或输出块(例如,AI 356和/或AO 360)分配给具有匹配的I/O标签的执行环境(例如,238)。在框604处,系统(例如,在操作IDE 222的用户的命令下或自动地)可以将计算块(例如,PID 
358)分配给执行环境(例如,238),其中在框602中分配具有相同I/O标签的输入和输出块(例如,356、360)。
[0075] 在框606处,作为框602至604的分配的结果,系统可以在跨不同的物理过程自动化节点分布的I/O和/或计算块之间插入通信块(例如,图4中的PUB和SUB块)。在图4中示出这样的示例。
[0076] 在框608处,系统可以基于一个或更多个FBAP约束(例如,在方法500的框502处识别的)来分析框602至604的分配,以在框610处确定是否违反了那些约束中的任何约束。如果在框610处的回答为是,则在一些实施方式中,方法600可以返回到框502和/或框504。然而,如果在框610处的回答为否,则方法600可以进行到框612。
[0077] 在框612处,系统(例如,通过匹配引擎103)可以评估各种块被分配到的执行环境的计算资源使用(例如,存储器、处理器循环等),如先前描述的。基于框612的评估,在框614处,系统可以将I/O和/或计算块重新分配给最接近的替代过程自动化节点的执行环境。在框616处,如果框614的重新分配中的任一个不可能(例如,因为其将违反先前描述的FBAP约束),那么系统可以针对用户(例如,操作IDE 222)发出警报或警告。
[0078] 图7是可以可选地用于执行本文描述的技术的一个或更多个方面的示例计算设备710的框图。计算设备710通常包括经由总线子系统712与多个外围设备通信的至少一个处理器714。这些外围设备可以包括存储子系统724,包括例如存储器子系统725和文件存储子系统726、用户接口输出设备720、用户接口输入设备722和网络接口子系统716。输入和输出设备允许用户与计算设备710交互。网络接口子系统716提供到网络(物理和/或虚拟)的接口并且耦合到其他计算设备中的对应接口设备。
[0079] 用户接口输入设备722可以包括键盘、诸如鼠标轨迹球触摸板或图形平板的定点设备、扫描仪、结合到显示器中的触摸屏、诸如语音识别系统、麦克风和/或其他类型的输入设备的音频输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备710中或通信网络上的所有可能类型的设备和方式。
[0080] 用户接口输出设备720可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备、或用于创建可见图像的某种其他机制。显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括将信息从计算设备710输出到用户或另一机器或计算设备的所有可能类型的设备和方式。
[0081] 存储子系统724存储提供本文描述的一些或全部模块的功能性的编程和数据结构。例如,存储子系统724可以包括执行图5和6的方法的选定方面以及实现图1至4中描绘的各种组件的逻辑。
[0082] 这些软件模块通常由处理器714单独或与其他处理器组合执行。在存储子系统724中使用的存储器725能够包括多个存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)730和其中存储固定指令的只读存储器(ROM)732。文件存储子系统726能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器软盘驱动器以及相关联的可移动介质、CD‑ROM驱动器、光盘驱动器或可移动介质盒。实现某些实施方式的功能性的模块可以由存储子系统724中的文件存储子系统726存储,或者存储在(多个)处理器714可访问的其他机器中。
[0083] 总线子系统712提供用于让计算设备710的各种组件和子系统按预期彼此通信的机制。尽管总线子系统712被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
[0084] 计算设备710能够是不同类型的,其包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图7中描绘的计算设备710的描述仅旨在作为示出一些实施方式的目的的特定示例。计算设备710的许多其他配置是可能的,具有比图7中描绘的计算设备更多或更少的组件。
[0085] 虽然本文已经描述和说明了若干实施方式,但是可以利用用于执行功能和/或获得结果和/或本文中描述的优点中的一个或更多个的各种其它装置及/或结构,并且这种变化及/或修改中的每一个被视为在本文中描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置意味着是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的特定应用或多个应用。本领域技术人员将认识到,或能够使用不超过常规实验来确定本文描述的具体实施方式的许多等同物。因此,应当理解,前述实施方式仅以示例的方式呈现,并且在所附权利要求及其等同物的范围内,可以以不同于具体描述和要求保护的方式来实践实施方式。本公开的实施方式涉及本文描述的每个单独的特征、系统、制品、材料、套件和/或方法。另外,如果这种特征、系统、制品、材料、套件和/或方法不相互不一致,则两个或更多个这种特征、系统、制品、材料、套件和/或方法的任何组合都包括在本公开的范围内。
QQ群二维码
意见反馈