处理控制环境中的分布式计算的制作方法

文档序号:11948374阅读:402来源:国知局
处理控制环境中的分布式计算的制作方法与工艺

处理控制装置监测并物理上修改动态系统或处理中的运行状态。通过使用备用组件,在处理控制实现中提供冗余和增加的稳定性。在传统的处理控制实现中,备用组件必须是其相应主组件的精确复制,以提供不中断的可接受冗余。主组件和备用组件之间的这种一对一的冗余关系使处理控制领域中出现多种问题。例如,这增加了处理控制系统的成本,因为每个主组件需要一备用组件。在这种一对一冗余上编写的应用可能需要专门编写以在冗余平台上执行来完全支持冗余方案。进一步地,当所述备用组件的相应主组件正常运行时,该一对一冗余关系可能导致备用组件的不使用。增加可用处理控制系统资源的数量还需要增加额外的主组件和相应的备用组件两者,这导致增加的成本和复杂性。此外,在传统实现中改变控制系统组件的配置需要费力的为组件连接重新布线。换句话说,这些传统系统是刚性的,并且无法适应不断变化的系统需求。



技术实现要素:

本发明的方面克服现有技术的局限性,并且通过减少所需冗余硬件的数量以及通过新的算法方法来改善处理控制和自动化领域。通过减少与为了满足变化的系统需求而重新配置组件相关联的时间量和成本提供了附加利益。在本发明的一个方面,提供了一种分布式计算环境,使得I/O装置可以由分布式计算环境内的所有控制器使用。此外,本发明的方面利用分配算法来在可用计算节点之间分发数据和应用,所述计算节点使用数据库来存储关键的执行信息,以便由替代的计算节点即时接管。优选地,不同的算法被实现,可以减轻分布式计算环境中死区时间的影响。

在一个方面,一种用于提供处理控制的系统包括通信信道和多个计算节点,每个计算节点连接到通信信道。所述系统还包括一个或多个执行节点,所述执行节点提供一组连接到通信信道的执行服务。计算节点和执行服务包括分布式计算环境。在某些情况下,这些计算节点可以改变所采用的操作系统的类型或版本与硬件两者。然而,计算节点合作并且可以彼此备份应用,即使它们是不同的平台。该系统的至少一个计算节点还包括输入/输出(I/O)应用,其提供处理控制装置和通信信道之间的电子数据通路。

在另一个方面,一种控制处理的设备包括电子数据通信信道和多个计算节点,每个计算节点连接到通信信道。至少一个计算节点实现处理控制应用。此外,所述设备包括传感器以及致动器,所述传感器连接到通信信道,并且提供代表处理的物理值的电子数据,所述致动器连接到通信信道,并且接收代表处理的物理值的操作的电子数据。所述设备还包括执行节点,其连接到通信信道,并且经由通信信道启动处理控制应用的至少一个子集在一个或多个其他计算节点之间的传输。

在另一个方面,一种在分布式处理控制环境中分发数据的方法包括通过第一计算节点发送一个或多个电子数据集到中央数据存储区。该数据集代表第一计算节点内执行的一个或多个应用的当前状态、控制数据和I/O数据中的至少一个。此外,所述方法包括在由执行服务管理器检测到第一计算节点的损失时通过第二计算节点从中央数据存储区接收至少一个数据集。所述方法还包括通过第二计算节点执行一个或多个应用,每个应用对应于第一计算节点的应用。第二计算节点的应用将所接收的至少一个数据集转变成代表处理变化的数据。第二计算节点发送代表变化的数据到处理控制装置,并且该处理控制装置根据所发送的数据来操作该处理。

实现本发明的各个方面的架构的附带利益是减少与配置控制应用相关的工程计划。例如,该架构允许与任何控制器共享I/O数据,从而消除控制应用和I/O模块之间的许多工程协调。这克服了通过继电器柜和编组柜路由传感器信号的所有中间接线,根据传统架构,通常需要上述方式来配置传感器I/O数据指向I/O模块和控制器。

实现本发明的各方面的架构的长期利益是硬件的简单演进。当架构工作在不同的硬件上时,具有当前组件的新硬件可以很容易地取代较旧的、过时的硬件。

本发明内容被提供用来以简化形式介绍概念的选择,所述概念在下面的详细描述中进一步描述。本发明内容不是为了确定要求保护主题的主要特征和本质特征,也不是为了用作辅助确定所要求保护主题的范围。

其他特征部分是显而易见的,部分在下文中指出。

附图说明

图1是现有技术的级联控制连接的图。

图2是根据本发明实施例的硬件组件的示例性架构的图。

图3A是根据本发明实施例的无状态、事件驱动应用执行操作的流程图。

图3B是根据本发明实施例的无状态、持久应用执行操作的流程图。

图4A是示出根据本发明实施例的硬件组件的示例性架构的数据迁移和分布的图。

图4B是根据本发明实施例的数据迁移和分布操作的流程图。

图5A是示出根据本发明实施例的硬件组件的示例性架构的代码迁移和分布的图。

图5B是根据本发明实施例的代码迁移和分布操作的流程图。

图6是根据本发明实施例的利用异构输入/输出连接的硬件组件的示例性架构的图。

图7是根据本发明实施例的硬件组件的示例性架构的图。

图8是根据本发明实施例的硬件组件的示例性架构的图。

图9是根据本发明实施例的硬件组件的示例性架构的图。

在整个附图中,相应的参考符号表示相应的部件。

具体实施方式

图1示出了传统的级联控制回路。级联控制回路包括监督模块10、控制模块12-A和12-B,以及输入/输出(I/O)模块16-A和16-B。每个控制模块12-A和12-B分别包括控制应用14-A和14-B。控制模块12-A直接连接到I/O模块16-A和16-B。控制模块12-A还连接到控制模块12-B,从而形成级联控制回路。I/O模块16-A连接到传感器18并且I/O模块16-B连接到泵20。在这种方式下,由于直接连接,传感器18和泵20依赖于控制模块12-A和控制应用14-A。

与图1的传统级联控制回路相关联的显著缺点是应用之间的对等订阅的管理。例如,当控制模块12-A进入故障状态时,控制应用14-A到不同的控制模块的迁移需要所有连接被重新建立来作为迁移的一部分。换句话说,故障切换机制将需要从控制模块12-A手动地断开I/O模块16-A和16-B的连接,并将他们重新连接到不同的控制模块。根据这种传统的实现,如果级联回路或回路内的块分散在多个控制模块中,那么会导致对控制的负面影响。

图1的传统级联控制回路的另一个缺点是控制模块12-B和控制应用14-B对控制模块12-A和控制应用14-A的依赖。例如,当控制模块12-A进入故障状态时,监督模块10不再具有与控制模块12-B或控制应用14-B的连接。为了恢复连接,故障切换机制将需要利用替代物来替换控制模块12-A的故障硬件,或从控制模块12-A手动地断开控制模块12-B的连接并且将其重新连接到监督模块10。

图2示出了根据本发明实施例的处理控制计算系统100。在所示的实施例中,处理控制计算系统100包括在用于流体处理系统的处理控制环境内,该流体处理系统还包括泵138,传感器140和阀142。处理控制计算系统100包括执行节点110,通信信道120,以及多个计算节点130。执行节点110包括执行服务管理器112,控制数据库114,输入/输出(I/O)数据库116,以及通信接口118。控制应用132-A包括在计算节点130-A中,并且控制应用132-D包括在计算节点130-D中。I/O应用134-B包括在计算节点130-B中,并且I/O应用134-F包括在计算节点130-F中。在其他示例性实施例中,控制应用132和/或I/O应用134通过计算节点130由计算引擎来执行,如本文的进一步描述。在另一个实施例中,系统100是无边界的,其中执行服务管理器112和数据库(例如,控制数据库114,I/O数据库116等)分布在计算节点130之间。在一个方面,如本文的进一步描述,系统100的功能由离散的应用来提供,且不是单片形象。在另一个方面,系统100是可扩展的。在又一个方面,系统100提供中央数据存储区作为数据分发机制,这使得数据对于所有节点是便利可用的。在这个方面,中央数据存储区包括多种数据类型,包括但不限于,用于处理控制的数据、对象、关系等。

在处理控制计算系统100中,计算节点130经由通信信道120通信地连接到通信接口118。通过这些通信连接,控制应用132-A和132-D与控制数据库114进行通信,并且I/O应用134-B和134-F与I/O数据库116进行通信。执行服务管理器112、控制数据库114、和I/O数据库116通信地连接到通信接口118。然而,在另一个实施例中,执行服务管理器112、控制数据库114、和I/O数据库116通信地连接到通信信道120。执行服务管理器112经由通信接口118和通信信道120与计算节点130、控制应用132和I/O应用134进行通信。I/O应用134-B和134-F通信地连接到泵138、传感器140和阀142。所述通信连接可以包括根据模拟、数字、脉冲、串行和/或并行技术(例如,协议)操作的通信连接。此外,多于一个通信协议可以同时被使用。例如,I/O应用134-B使用协议进行通信,而I/O应用134-F使用基础现场总线通信协议进行通信。

在一个方面,处理控制计算系统100适于在计算节点130之间分发执行负载。在一个实施例中,处理控制计算系统100适于作为单个通用I/O模块来运行。处理控制计算系统100可以适应计算节点130的添加和移除。有利的是,处理控制计算系统100的架构通过在计算节点130之间迁移控制来支持负载均衡和故障切换。粒度控制以及对控制应用132和I/O应用134的分片能力,使得可以在具有空闲容量的其他计算节点130之间分发在故障计算节点130上执行的控制应用132和I/O应用134。在一个方面,处理控制计算系统100充当数据存储区,其允许网络的分离(例如,分离控制和I/O网络)。

在另一个方面,处理控制计算系统100适于控制处理中的变量,所述变量改变或改进原材料以得到最终产品。所述处理包括但不限于,在化学制品、石油和天然气、食品和饮料、药物、水处理和电力行业中的处理。例如,处理控制计算系统100控制诸如一种配料与另一种配料的比例、材料的温度、配料混合的怎样以及保持材料的压力等因素。

进一步参照图2,执行节点110适于提供共享数据、数据处理任务和其他服务或资源。在一个实施例中,执行节点110包括由单个物理计算装置或多个物理计算装置提供的服务(例如,执行服务管理器112、控制数据库114、I/O数据库116等)集合(即,分布式执行服务)。在一个方面,执行节点110提供数据和/或连接聚合和联合能力。例如,通过存储由一个或多个计算节点130通过通信接口118和通信信道120提供的I/O和控制数据,执行节点110辅助数据的合成(即,聚合)。作为另一个示例,执行节点110有助于把在一个或多个计算节点130或控制数据库114中产生的数据通过通信接口118和通信信道120传输到另一个计算节点130或控制数据库114(即,联合)。在一种形式中,整个聚合数据集合被联合输出到计算节点130,而在另一种形式中,仅聚合数据的相关子集被联合输出到计算节点130。

根据本发明的其他方面,图2中的执行节点110监控计算节点130以确定当前状态和/或计算负载。例如,执行节点110监控计算节点130-A以确定其是否处于指示即将发生故障的状态。此外,根据本发明的方面,执行节点110被配置用于监控由计算节点130-A利用的计算资源的量。在又一个方面,当其中一个计算节点130发生故障时,执行节点110启动数据迁移。例如,如下面进一步介绍的,当节点130-A即将或已进入故障状态时,执行节点110促进数据从计算节点130-A到计算节点130-D的迁移。执行节点110还可以被配置为提供服务管理。在一个示例性实施例中,服务管理包括部署应用(例如,控制应用132和I/O应用134)到一个或多个计算节点130。在另一个示例性实施例中,服务管理包括应用(例如,控制应用132和I/O应用134)的状态管理。

再次参照图2,执行节点110可以被实施为计算机可执行指令,其存储在非临时性计算机可读介质中,例如作为服务器运行的计算机、嵌入式设备、或单片机(例如,树莓派)。然而,本领域技术人员可以理解的是,执行节点110还可以被实施为数字或模拟电子电路。在另一个实施例中,执行节点110被提供在远离计算节点130的物理位置的物理位置。在又一个实施例中,执行节点110的功能的高可用性通过利用多于一个执行节点110和/或包括执行节点110的复制组件来提供。

图2中的执行服务管理器112适于在计算节点130之间分发控制应用132和I/O应用134。这种分发可以由执行服务管理器112经由通信信道120发送和接收控制信号来实现。实施本发明的方面的执行服务管理器112可配置用于检测一个或多个节点130的故障或移除。在另一个实施例中,执行服务管理器112适于检测添加的或最近激活的计算节点130。在又一个实施例中,执行服务管理器112适于激活排队的控制应用132和/或I/O应用134以由计算节点130执行。有利地,执行服务管理器112为处理控制计算系统100提供灵活性,并且允许扩展重负载系统而不破坏现有控制。根据一个示例性实施例,执行服务管理器112管理部分处理控制计算系统,例如,在一些实施例中其可以被称为云环境。

执行服务管理器112可以被实施为计算机可执行指令,所述计算机可执行指令存储在非临时性计算机可读介质中,例如作为服务器运行的计算机。在另一个实施例中,执行服务管理器112被实施为数字或模拟电子电路。在一个实施例中,执行服务管理器112被实施为在执行节点110上执行的计算机可执行指令。在另一个实施例中,执行服务管理器112被实施为在计算节点130上执行的计算机可执行指令。在又一个示例性实施例中,执行服务管理器112被实施为在多个执行节点110和/或计算节点130上执行的计算机可执行指令,如本文进一步描述的。

再次参照图2,控制数据库114适于在非临时性计算机可读介质中存储计算机可读控制数据。包括状态信息的计算机可读控制数据例如代表控制应用132和/或处理控制装置(包括现场装置,例如泵138、传感器140、和阀142)的物理状态。控制数据库114还适于使存储的数据可用于计算节点130。在一个方面,控制数据库114缓解将所有控制数据连续不断地发布到每个计算节点130的需求。在另一个方面,控制数据库114适于作为数据存储,其允许把由控制数据库114和控制应用132-A、132-D组成的控制网络从由I/O数据库116和I/O应用134-B、134-F组成的I/O网络中分离出来。

仍参照图2,I/O数据库116适于在非临时性计算机可读介质中存储计算机可读I/O数据。在一个实施例中,计算机可读I/O数据代表I/O应用134和/或处理控制装置(包括泵138、传感器140、和阀142)的物理状态。I/O数据库116还适于使存储的I/O数据可用于计算节点130。根据一个实施例,I/O数据库116缓解将所有I/O数据连续不断地发布到每个计算节点130的需求。在一个方面,I/O数据库116适于作为数据存储,其允许把由I/O数据库116和I/O应用134-B、134-F组成的I/O网络从由控制数据库114和控制应用132-A、132-D组成的控制网络中分离出来。

通信接口118适于促进组件之间的数据通信,所述组件包括执行节点110和通信信道120。在图2所示的实施例中,通信接口118促进执行服务管理器112、控制数据库114、I/O数据库116和通信信道120之间的数据通信。例如,通信接口118是网络接口卡。

图2中的通信信道120适于提供执行节点110和计算节点130之间的通信连接。在一个方面,通信信道120是公共高速通信连接,其由系统100的所有节点(例如,计算节点130和/或执行节点110)共享。在一个实施例中,通信信道120是电信网络,其促进数据的交换,例如根据IEEE 802.3(例如,以太网)和/或IEEE 802.11(例如,Wi-Fi)协议操作的网络。在另一个实施例中,通信信道120是任何介质,其允许数据通过串行或并行通信信道(例如,铜线、光纤、计算机总线、无线通信信道等)进行物理传输。

继续参照图2的示例性实施例,计算节点130适于执行控制应用132和I/O应用134。在一个方面,计算节点130经由通信信道120连接,并且相互作用以实现共同目标。在另一个示例性实施例中,计算节点130适于执行执行服务管理器112、控制数据库114、I/O数据库116、计算服务管理器和/或计算引擎,如本文进一步描述的。计算节点130可以由低成本的现有硬件、嵌入式控制器和/或虚拟化控制器组成。例如,在一个示例性实施例中,计算节点130被实施为存储在非临时性计算机可读介质(例如,计算机、嵌入式设备或单片机(例如,树莓派))中的计算机可执行指令。然而,本领域技术人员可以理解的是,计算节点130还可以被实施为数字或模拟电子电路。在一个实施例中,计算节点130彼此近距离物理靠近。在另一个实施例中,计算节点130和涉及计算节点130的通信,例如经由通信信道120的通信,是网络安全的。例如,网络安全通过使用加密、黑名单等来提供。

图2中的控制应用132适于监控和控制处理的变量。在一个示例性实施例中,控制应用132-A从测量仪器(例如,传感器140)接收数据,其代表制造过程的当前物理状态,控制应用132-A将所述数据与预先选定的设定值或其他数据进行比较,并且发送信号到控制元件(例如,泵138和/或阀142)以采取校正动作。在本发明的一个实施例中,控制应用132执行数学函数从而在数据之间或数据和设定值之间进行比较。本领域技术人员可以理解的是,在一个实施例中,控制应用132由不同数量的组件组成。例如,用于执行单个控制应用132的多个特定组件可以包括但不限于,简单的可执行程序、支持控制应用的平台、执行框架、和/或一组配置数据。在一个实施例中,执行框架包括多种环境中的一个或多个以支持逻辑执行,例如,基础现场总线FBAP,Java虚拟机以及Java小程序和/或具有公共语言运行时(CLR)的.NET运行时环境。控制应用132具有一系列功能。在一个实施例中,控制应用132是控制逻辑,例如复合块执行或先行控制。在进一步的实施例中,控制应用132可以包括,但不限于,I/O功能块处理、IEC1131-3控制处理(例如,功能块、顺序功能图、梯形图、指令表或结构化文本)、监督控制应用、仿真应用、安全应用、优化应用、报警和事件处理等。此外,在一个附加实施例中,控制应用132包括混合其他类型的应用,例如,但不限于,实时数据库、操作员界面、和/或报告包到计算节点130上。控制应用132可以被实施为存储在非临时性计算机可读介质中的计算机可执行指令,例如可编程逻辑控制器。在进一步的实施例中,控制应用132被实现为数字或模拟电子电路。有利地,控制应用132允许任何计算节点130监测和控制处理变量。

图2中的I/O应用134适于在处理控制计算系统100和处理控制元件(例如,泵138、传感器140和阀142)之间接收和发送电子信号。由I/O应用134发送和接收的电子信号可以是模拟的(例如,4-20mA的电流信号)或数字的(例如,协议、FOUNDATIONTM现场总线协议等)。在一个方面,I/O应用134可以是传统仪器或简单传感器I/O转换器的总线主机。有利地,I/O应用134允许任何计算节点130适于在处理控制计算系统100和处理控制元件之间接收和发送电子信号。I/O应用134可以被实施为存储在非临时性计算机可读介质中的计算机可执行指令。在附加实施例中,I/O应用134被实施为数字或模拟电子电路。

再次参照图2,泵138、传感器140和阀142适于测量处理中的物理变化和/或处理的物理操作部分从而实现物理变化。例如,传感器140可被配置用于测量池中流体的高度变化并且报告(例如,发送数据)测量结果给处理控制计算系统100。可以预期的是,其他装置或仪器可以用于测量目的,包括但不限于,热电偶、科里奥利流量管、雷达发射器和接收器等。此外,换能器和/或转换器可以用于将一种类型的信号转换为另一种类型的信号(例如,将机械信号转换为电子信号)。泵138和/或阀142-A用于,例如,限制通过管道的流体的流动以减少池中流体的高度。本领域技术人员可以理解的是,其他装置可以用于引起物理变化,包括但不限于,致动器、百叶窗、螺线管等。

根据本发明的一个方面,处理控制计算系统100提供无状态的程序执行。在一个实施例中,无状态的分布式计算的特征在于,接收请求以执行功能,然后在没有关于先前请求信息的情况下执行所述功能(即,没有“记忆的”信息)。例如,执行服务管理器112可配置用于启动和管理并行活动,例如分开的线程和/或进程,以执行算法操作。参照图3A,在步骤302,在计算节点130-B上执行的I/O应用134-B接收教据。在一个示例性实施例中,数据代表值,所述值包括由传感器140测量的池中的流体高度、在泵138上所施加的电压、指示进入池中的流体流速的阀142-A的位置以及指示从池中流出的流体流速的阀142-B的位置。在一个实施例中,图3A示出了事件驱动应用的执行,执行中的结果是基于激励。然后在步骤304,I/O应用134-B发送这个数据到执行服务管理器112和I/O数据库116。在步骤306中,作为响应,执行服务管理器112识别和发送请求到空闲的计算节点130。空闲并且可供使用的计算节点130发送批准,在步骤308,所述批准由执行服务管理器112来接收。

进一步参照图3A,在步骤310中,执行服务管理器112启动计算节点130-A上的控制应用132-A以及计算节点130-D上的控制应用132-D。例如,控制应用132-A和132-D存储在控制数据库114中。步骤310包括,例如,执行服务管理器112促进将应用132-A和132-D从控制数据库114分别发送到计算节点130-A和130-D。然后在步骤312,执行服务管理器112在控制应用132-A和132-D之间分发工作量。例如,执行服务管理器112促进将存储在I/O数据库116中的数据全部或部分地发送到控制应用132-A和/或控制应用132-D。以这种方式,执行服务管理器112作为管理器运行,其负责识别或启动空闲计算资源(例如,识别空闲的计算节点130)和/或在节点130之间分发工作量(例如,控制应用132、I/O应用134)。本领域技术人员可以理解的是,执行服务管理器112可以全部或部分地分发工作量。

在图3A中的步骤314,控制应用132-A使用微分方程计算值,例如池中流体的体积变化:

<mrow> <mfrac> <mi>d</mi> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mi>V</mi> <mi>o</mi> <mi>l</mi> <mo>=</mo> <mi>b</mi> <mi>V</mi> <mo>-</mo> <mi>a</mi> <msqrt> <mi>H</mi> </msqrt> <mo>,</mo> </mrow>

其中b是与进入池中的流速相关的常数(例如,由阀142-A提供的数据),V是施加到泵138的电压(例如,由泵138提供的数据),a是与从池流出的流速相关的常数(例如,由阀142-B提供的数据),以及H是池中流体的高度(例如,由传感器140提供的数据)。

控制应用132-A发送教据到执行服务管理器112、控制数据库114和控制应用132-D,所述数据代表所计算的体积变化。在步骤316,控制应用132-D确定是否需要对处理进行物理调节。例如,控制应用132-D将从控制应用132-A接收的数据的值与设定值进行比较。如果所述值满足设定值,那么可以不采取行动。但是如果所述值不能满足设定值,那么控制应用132-D前进到步骤318以确定通过泵138(例如,减少或增加电压)和阀142-A和142-B(例如,增加或减少液流)对处理进行的调节。以这种方式,控制应用132-A和132-D作为分开的处理,其使用所述数据执行控制算法的操作。一旦应用132-D确定了调节,这些调节经由通信信道120和I/O应用134-B和134-F发送给泵138、阀142-A和142-B,如步骤320所示。

图3B示出了控制应用132-A的持续执行的实施例。在步骤330,例如控制应用132-A被部署到计算节点130-A。在一个实施例中,用户手动部署控制应用132-A。在步骤314,控制应用132-A停留在计算节点130-A上并且执行,如上述进一步的描述。例如,控制应用132-A从控制数据库114和/或I/O数据库116读取数据、执行控制算法、以及将数据写入回控制数据库114和/或I/O数据库116。在一个实施例中,由图3B所示的执行前进到步骤316,318和320,如上述的进一步描述。

在另一个实施例中,处理控制计算系统100以“传统”的服务模型的形式提供无状态的程序执行,例如基于面向服务的架构(SOA)的服务模型。在又一个实施例中,处理控制计算系统100被与例如超文本标记语言(HTML)一起利用,来提供基于网络的服务(例如,网络农场)。

图4A示出了根据本发明实施例的提供数据迁移和分布的处理控制计算系统100。在这个实施例中,处理控制计算系统100包括执行节点110和计算节点130-A和130-B。每个计算节点130-A和130-B包括控制应用132-A。与控制应用132-A相关联的控制应用数据集402存储在计算节点130-A和130-B以及控制数据库114中。

在一个实施例中,控制应用数据集402包括数据,所述数据代表计算节点130-A的当前状态和/或先前状态以及中间数据。有利地,图4A所示的处理控制计算系统100的实施例,通过复制和移动(即,发送)控制应用数据集402来提供处理控制,而不是要求发送控制应用132-A及其相关数据。如虚线所示,并且如下述进一步描述的,包括控制应用数据集402的数据从计算节点130-A被复制到控制数据库114,并且接着从控制数据库114被复制到计算节点130-B。这种状态数据的迁移使处理控制计算系统100能够在计算节点130之间分发执行负载(例如,负载平衡、添加计算节点130),而不受现有技术的管理和初始化约束。本领域技术人员可以理解的是,图4A所示的处理控制计算系统100的实施例还通过使用I/O应用134和I/O数据库116来提供数据迁移和分布。

在图4A的另一个实施例中,处理控制计算系统100提供除了和/或替代提供数据迁移和分布的冗余。例如,每个计算节点130-A和130-B并行地执行控制应用132-A和控制应用数据集402。然后另一个计算节点130和/或执行服务管理器112被用于比较计算节点130-A和计算节点130-B之间的数据,以确保每个计算节点获得相同的结果。在附加实施例中,任何数量的附加计算节点130可以被用于确保计算节点130-A和130-B得到正确的结果,例如,比如通过投票。在一个实施例中,附加计算节点130可以提供用于安全和关键控制应用的三重模块冗余(或更大的冗余)。

图4B示出了处理控制计算系统100的数据迁移和分布操作。在步骤452的操作中,每个计算节点130-A和130-B执行控制应用132-A。例如,在计算节点130-A上执行的控制应用132-A可配置用于计算诸如池中流体的体积变化的值,或执行算法操作,如上所述。在计算节点130-A上对控制应用132-A的执行产生数据,所述教据包括控制应用数据集402,例如计算节点130-A的状态信息或计算结果。在步骤454,控制应用数据集402的数据通过从计算节点130-A经由通信信道120和通信接口118的传输而存储在控制数据库114中。在所示的实施例中,控制应用数据集402的传输由执行服务管理器112进行调节或监督。

再次参照图4B,在步骤456中,执行节点110检测计算节点130-A的损失(例如,故障)。根据这种检测,操作继续到步骤458,在该步骤中执行服务管理器112启动控制应用数据集402从控制数据库114到计算节点130-B的传输,其中控制应用132-A已经在执行。在步骤460,计算节点130-B利用控制应用数据集402继续执行控制应用132-A,包括将新的以及更新了的状态数据存储在控制数据库114中。有利地,这种数据迁移允许控制从一个计算节点130移动到另一个计算节点,以提供高可用性和灵活性,而无需重新建立连接。在替代实施例中,处理控制计算系统100在数据迁移和分布模式下进行操作,而没有计算节点130的损失。例如,执行服务管理器112检测计算节点130-B的添加,并且启动控制应用数据集402从计算节点130-A到计算节点130-B的迁移,同时节点130-A仍在执行控制应用132-A。以这种方式,处理控制计算系统100可以使用数据迁移和分布以处理计算节点130的添加或负载平衡的考虑。在另一个实施例中,图4B的操作利用I/O应用134和I/O数据库116来提供I/O数据的迁移和分布。

图5A示出了根据本发明实施例的提供代码迁移和分布的处理控制计算系统100。在这个实施例中,处理控制计算系统100包括执行节点110、通信信道120、计算节点130-A,130-B,130-C和130-D、控制应用132-B和132-C以及I/O应用134-D。在一个实施例中,计算节点130保留状态信息用于利用先验信息。I/O应用134-D通信地连接到输入装置,并且适于在处理控制计算系统100和处理控制元件(例如,图2中所示的泵138、传感器140和阀142)之间接收和发送电子信号。来自这些元件的数据包括I/O应用数据集502。包括I/O应用数据集502的数据还包括来自在控制应用132-C中执行的PID块的输出。

参照图5A,包括I/O应用数据集502的数据从I/O应用134-D传输到I/O数据库116,并且然后使其对于在计算节点130-B上执行的控制应用132-B是可用的。有利地,控制应用132-B可以从计算节点130-A迁移到计算节点130-B,而无需重新建立节点130之间的对等连接。相反,所有需要的数据由系统100通过I/O数据库116来提供。在一个实施例中,执行节点110检测计算节点130-A的故障。根据检测,执行服务管理器112将来自故障计算节点130-A的控制应用132-B传输到计算节点130-B。与控制应用132-B相关联的控制数据库114和I/O数据库116也分别被移动到计算节点130-B。

图5B示出了处理控制计算系统100的代码迁移和分布。在步骤552的操作中,计算节点130-A执行控制应用132-B、计算节点130-C执行控制应用132-C、并且计算节点130-D执行I/O应用134-D。例如,在节点130-C上执行的控制应用132-C计算诸如在池中流体的体积变化的值,或执行算法操作,如上所述。在一个实施例中,I/O应用134-D提供处理控制计算系统100与传感器140和阀142-A之间的通信连接。可以预期的是,I/O应用134-D可被配置为提供到附加处理控制装置的通信连接。对控制应用132-C和I/O应用134-D的执行产生数据,所述数据包括I/O应用数据集502。例如,由控制应用132-C产生的数据是用于计算节点130-C的状态信息,或由控制应用132-C所执行的计算结果。在一个实施例中,由控制应用132-C产生的数据包括来自在计算节点130-C或外部控制器上执行的PID块或相似块的输出。例如,由I/O应用134-D产生的数据可以是关于由传感器140测量的池中流体高度的物理信息。

在步骤554,来自控制应用132-C和I/O应用134-D的数据被存储在I/O数据库116上的I/O应用数据集502中。例如,数据从计算节点130-C和130-D经由通信信道120和通信接口118传输。执行服务管理器112优选地监视、调节和/或监督计算节点130。还在步骤554中,在计算节点130-A上执行的控制应用132-B从I/O应用数据集502接收数据,并且在执行处理中利用该数据。在一个实施例中,控制应用132-B计算诸如池中流体的体积变化的值,或执行算法操作,如上所述。

再次参照图5B,在步骤556,执行服务管理器112确定是否需要附加的计算节点130以提供对由泵138、传感器140和阀142组成的处理的充分控制。例如,当在节点130-A上布置比其能满足的要求更高的要求时,执行服务管理器112确定需要附加节点130-B。在这个实施例中,当节点130-A即将或已进入故障状态时,执行服务管理器112也确定需要附加节点130-B。例如,故障状态可以是失灵,在这种情况下,整个控制应用132-B被迁移到节点130-B。作为另一个示例,故障还可以是过载,在这种情况下,仅部分控制应用132-B被迁移到节点130-B。执行服务管理器112可被配置为在经由通信信道120和通信接口118接收数据后做出确定,所述数据代表计算节点130-A的当前或过去状态。在执行服务管理器112确定不需要附加计算节点130的情况下,处理返回到步骤552并且继续。在执行服务管理器112确定需要附加计算节点130的情况下,处理继续到步骤558。

在步骤558,执行服务管理器112识别具有额外能力的计算节点130以运行附加的计算,在一个实施例中这提供了负载平衡。例如,计算节点130-B连接到通信信道120,但是不执行控制应用132或I/O应用134。在这种情况下,执行服务管理器112识别计算节点130-B是空闲的,并且在计算节点130-B中开始新的应用(例如,控制应用132、I/O应用134等)。在另一个实施例中,执行服务管理器112识别计算节点130-B不是空闲的(即,执行控制应用132和/或I/O应用134),但是具有足够的空闲资源来处理控制应用132-B的执行。在执行服务管理器112识别合适的计算节点130之后,处理前进到步骤560,其中应用被传输到该空闲节点。例如,执行服务管理器112启动控制应用132-B从计算节点130-A到计算节点130-B的传输。在传输之后,处理返回到步骤552,其中控制应用132-B在计算节点130-B上执行,从I/O应用数据集502接收数据,并且在执行处理中利用该数据。

在一个实施例中,处理控制计算系统100通过各种分解技术(例如,任务分解、数据分解、数据流分解等)来分割数据源(例如,I/O应用数据集502)用于代码迁移和分布操作。在另一个实施例中,处理控制计算系统100通过同步原语(例如,信号量(semaphores)、锁、条件变量等)来协调计算节点130以管理所使用的数据。

图6示出了处理控制计算系统100可以支持的I/O应用134的各种实现方式。在一个实施例中,处理控制计算系统100提供了对传统I/O装置的支持,例如HART调制解调器610,其经由HART通信协议提供与泵138的通信连接。在这个实施例中,I/O应用134-B作为在计算节点130-B上执行的HART主机运行。在另一个实施例中,处理控制计算系统100为简单传感器I/O模型提供支持,例如提供与传感器140和阀142的通信连接的简单传感器620。简单传感器用于收集有关处理变量的原始数据,例如温度、压力和流速。分开的处理器(即,传感器大脑)将原始数据处理成可以在处理控制系统中被使用的形式。共同转让的美国专利申请No.14/171,344描述了用于简单传感器的传感器大脑,其全部内容通过引用并入于此。

在这个实施例中,I/O应用134-D在计算节点130-D上作为简单传感器付给算法执行,并且I/O应用134-F在计算节点130-F上作为简单传感器释放算法执行。在一个实施例中,I/O应用134和计算节点130允许处理控制计算系统100经由多种通信协议与处理控制装置(例如,泵138、传感器140、阀142)相连接.有利地,这种互操作性改进了处理控制计算系统100的运行。

图7示出了处理控制计算系统100的另一个示例性实施例,其中执行服务管理器112和计算引擎148驻留在相同节点内。此实施例包括两个节点,110-A/130-A和110-B/130-B,每个节点都可配置为同时作为执行节点110和计算节点130而运行。每个节点包括执行服务管理器112,并且通信地连接到通信信道120。节点110-A/130-A包括计算引擎148-A和148-B,并且节点110-B/130-B包括计算引擎148-C。执行服务管理器112包括应用管理器144、计算引擎管理器146和数据库,所述数据库作为控制数据库114和I/O数据库116而运行。所述数据库进一步包括控制应用数据集402和I/O应用数据集502。控制应用数据集402由控制配置数据404和控制动态数据组成,并且I/O应用数据集502由I/O配置数据504和I/O动态数据506组成。每个计算引擎148-A,148-B和148-C分别包括控制应用132-A,132-B和132-C以及I/O应用134-A,134-B和134-C。在一个实施例中,每个计算引擎148是虚拟机(VM)。

图7的实施例举例说明了一种小系统100,其使用两个节点110-A/130-A和110-B/130-B提供了高可用性。在这个示例性实施例中,执行服务管理器112被复制,但是在同一时间仅在一个节点上活跃。例如,执行服务管理器112可以首先在节点110-A/130-A上活跃,并且管理计算引擎148-A,148-B和148-C。然后在与节点110-A/130-A相关联的故障的情况下,由于节点110-B/130-B上的可用空闲资源,执行服务管理器112变为在节点110-B/130-B上活跃。本领域技术人员可以理解的是,节点110-B/130-B不需要最初被指定为节点110-A/130-A的备用节点。例如,节点110-B/130-B上的空闲资源可以用于附加计算引擎148。然而,当系统100的示例性实施例检测到故障时,节点110-B/130-B上的空闲资源用于执行服务管理器112。

图8示出了处理控制计算系统100的另一个示例性实施例,其中执行服务管理器112和计算引擎148在分开的节点上执行。在示例性实施例中,执行服务管理器112在执行节点110上执行,并且计算引擎148在计算节点130上执行。例如,在这个实施例中,执行服务管理器112被分成多个节点(即,分布式执行服务)来管理对服务的高要求。执行节点110-A包括执行服务管理器112的一部分112-A,112-A相应地包括应用管理器144和计算引擎管理器146。执行节点110-B包括执行服务管理器112的另一个部分112-B,112-B相应地包括控制数据库114、I/O数据库116、控制应用数据集402、控制配置数据404、控制动态数据406、I/O应用数据集502、I/O配置数据504以及I/O动态数据506。执行节点110和计算节点130通信地连接到通信信道120。在一个实施例中,执行服务管理器112的部分112-A和112-B一起作为用于系统100的所有数据的中央数据存储库而运行。

由图8所示的系统100的实施例还包括在多个计算节点130上执行的多个计算引擎148。每个计算引擎148包括控制应用132和I/O应用134。每个计算节点130还包括计算服务管理器150。在一个实施例中,计算服务管理器150与执行服务管理器112和/或其部分(例如,部分112-A和112-B)相互作用以管理计算引擎148。在这个示例性实施例中,每个执行服务管理器的部分112-A和112-B为了高可用性而被复制,但是在同一时间仅在一个节点上活跃。例如,部分112-A可以首先在节点110-A上活跃,并且部分112-B可以在节点110-B上活跃。然后在与节点110-A相关联的故障的情况下,由于节点110-C上的可用空闲资源,部分112-A变为在节点110-C上活跃。在与节点110-B相关联的故障的情况下,部分112-B变为在节点110-D上活跃。在一个实施例中,执行服务管理器112和/或其部分提供中央数据存储区作为数据分发机构,其不会遭受固有瓶颈的负面后果。例如,中央数据存储区提供对于每个节点便利可用的数据,而不会对应用(例如,控制应用132)或其他处理控制硬件(例如,现场总线模块)带来负面影响。

继续参照图8的示例性实施例,如果计算引擎148发生故障,那么由这个引擎提供的所有功能通过多个恢复方案中的一种被传输到替代计算引擎。在一个实施例中,功能迁移通过移动(例如,通过经由通信信号120来发送和接收数据)应用(例如,控制应用132和/或I/O应用134)到不同的计算引擎148来实现。例如,执行服务管理器112监视第一节点上虚拟机形式的计算引擎148的健康状况。在第一节点故障的情况下,执行服务管理器112启动(例如,起转(spin up))另一个节点上的新虚拟机(例如,计算引擎148)。在另一个实施例中,功能迁移通过重新分配包括内部状态信息的应用的运行时数据到在不同计算引擎148中运行的等效应用来实现。在又一个实施例中,利用上述两种方法的组合。在另一个实施例中,某个计算引擎148的所有应用被迁移到另一个节点(例如,计算节点130和/或执行节点110)。以这种方式,图8示出了系统100的可扩展的实施例,因为分布式控制由应用组成,所述应用可配置为在任何可用硬件(例如,计算节点130和/或执行节点110)上执行。此外,图8还示出了系统100的提供快速故障切换的实施例,其具有基于计算引擎148正在运行的应用类型的故障切换模式。

图9示出了处理控制计算系统100的示例性实施例,所述处理控制计算系统100包括执行节点110、计算节点130、I/O节点152以及中央存储节点156。执行节点110包括执行服务管理器112的一部分112-A。这个部分112-A进一步包括应用管理器144和计算引擎管理器146。计算节点130包括计算引擎148和计算服务管理器150。计算引擎148进一步包括控制应用132和I/O应用134。控制应用132包括控制配置数据404和控制动态数据406。I/O应用134包括I/O配置数据504和I/O动态数据506。I/O节点152包括I/O源数据集154,所述I/O源数据集154相应地包括I/O配置数据504和I/O动态数据506。中央存储节点156包括执行服务管理器112的另一个部分112-B。以这种方式,执行服务管理器112被分布在执行节点110和中央存储节点156之间。部分112-B进一步包括控制数据库114和I/O数据库116,其进一步包括控制应用数据集402、控制配置数据404、控制动态数据406、I/O应用数据集502、I/O配置数据504和I/O动态数据506。

在图9的这个示例性实施例中,系统100的所有节点使用公共以太网网络(例如,通信信道120)以通过中央存储节点156来交换数据。在一个实施例中,每个节点驻留在分开的物理计算装置上。在另一个实施例中,节点的任意组合驻留在相同的物理计算装置上。例如,执行服务管理器112的部分112-A可以驻留在计算节点130上。作为另一个示例,执行服务管理器112的部分112-B可以驻留在执行节点110上。在一个实施例中,计算引擎148执行除了控制应用132和I/O应用134之外的一些应用。例如,附加的应用可以包括逻辑、对象、配置数据和动态数据。在一个实施例中,应用是执行功能的任何一段计算机可执行代码(例如,ksh、可执行体、PYTHONTM等)。在另一个实施例中,应用可部署为独立于其他可执行体的分开的可执行体。在又一个实施例中,系统100除了基础设施功能以外的所有功能,作为应用(例如,控制、I/O扫描、历史化、网关类型功能等)被提供。在另一个示例性实施例中,一个或多个计算引擎148可以运行在每个计算节点130上。

在图9的示例性实施例中,I/O节点152具有外部接口,以收集(即,接收)输入数据或发送输出数据。例如,I/O节点152经由通信信道120实现与各种处理组件(例如,泵138、传感器140、阀142等)的数据接收和发送。在一个实施例中,此数据被存储在中央存储节点156中,以允许所有节点访问此数据。在图9的实施例中,I/O节点152可配置为从处理组件接收基于以太网的数据,并且发送该数据到中央存储节点156。使用I/O的应用(例如,在计算节点130上执行的I/O应用134)可配置为从中央存储节点156检索数据。在一个实施例中,任何专用的I/O接口在系统100外部的盒子里,并且I/O源数据集154可配置为当I/O节点152发生故障时迁移到另一个节点。

进一步关于图9的实施例,中央存储节点156包括与系统100相关联的运行时数据。在一个实施例中,直接经由中央存储节点156访问这个运行时数据、计算值和I/O数据可用于所有应用(例如,控制应用132和/或I/O应用134)。以这种示例性方式,中央存储节点156作为中央数据存储区或中央数据存储库而运行。本领域技术人员可以理解的是,应用不一定需要与中央数据存储区连续不断地交换所有运行时数据,但是不排除这么做。在另一个实施例中,系统100的数据通过中央存储节点156进行交换,而不是通过其他节点之间的对等节点进行交换。图9的虚线示出了系统100中的数据移动,所述系统100具有提供中央数据存储区的中央存储节点156。

再次参照图9的示例性实施例,执行服务管理器112和/或其部分(例如,部分112-A和112-B)提供计算引擎148、控制应用132、I/O应用134和中央存储节点156的管理。在这个实施例中,执行服务管理器112的功能性服务包括,但不限于,管理计算引擎图像(例如,计算引擎148),启动计算图像实例、监视计算引擎的健康状况、管理计算引擎故障、维护中央数据存储库(例如,中央存储节点156)、以及额外维护整个本地云和网络。在一个实施例中,为了高可用性和可扩展性,执行服务管理器112在多个节点之间分布。此外,执行服务管理器112可以驻留在物理计算机中,所述物理计算机执行计算引擎148。以这种方式,就不需要专用服务器来支持执行服务管理器112,以及没有高可用性的小系统100可以在一个物理计算装置上。

根据本发明的方面,处理控制计算系统100通过共享数据的可用性来提供无状态的程序执行、数据迁移和分布,以及代码迁移和分布能力。例如,各自执行控制应用132和/或I/O应用134的分布式计算节点130,通过共享数据(例如,控制应用数据集402、I/O应用数据集502)来管理工业处理的对象状态。在一个方面,处理控制计算系统100被提供在控制系统环境中,如图2和图6所示,为了高可用性,共享数据需要将I/O应用134分布到多个计算节点130,以及将控制数据和状态(例如,控制应用数据集402中的数据)从一个计算节点130分布到另一个节点。

在一个实施例中,处理控制计算系统100利用时间共享技术以避免计算资源所有权的最坏情况。例如,在第一时间段期间控制应用132-A在计算节点130-A上执行,以及在第二时间段期间不同的控制应用132-B在计算节点130-A上执行,所述第二时间段与第一时间段不重叠。这种时间共享传输各种计算节点130之间的需求,并且为处理控制计算系统100提供灵活性。

在另一个实施例中,计算节点130作为单回路控制器而运行。在进一步的实施例中,作为单回路控制器运行的多个计算节点130被组合到集群内。根据本发明的附加方面,处理控制计算系统100通过将数据即时地发布到控制数据库114和/或I/O数据库116(例如,控制应用数据集402、I/O应用数据集502)来提供跨所有计算节点130的紧密同步。在一个实施例中,当应用(例如,控制应用132,I/O应用134)在不同的计算节点130中执行时以及当数据被发布到控制数据库114和/或I/O数据库116时,进行紧密的现场网络同步控制。在进一步的实施例中,考虑到网络延迟,并且在整个控制周期中调度间隙。此外,这种大周期可以是部分自动的,例如在基础(Foundation)现场总线模型中。

在又一个实施例中,处理控制计算系统100限定了可迁移控制元件(例如,控制应用132),所述可迁移控制元件是整个回路。当控制在计算节点130之间迁移时(例如,从节点130-A到节点130-B),主控制模块被保持在一起作为一个组。例如,整个控制应用132可配置作为完整单元进行迁移。

在进一步的实施例中,处理控制计算系统100提供连续的处理控制。执行节点110经由通信信道120检测一个或多个计算机节点130的添加。根据这种检测,执行节点110经由通信信道120在添加的计算节点130和预先存在的计算节点130之间分配控制应用132。在分配之后,控制应用132产生电子数据,由处理控制计算系统100利用这些电子数据来控制处理,所述处理改变或提炼原始材料以产生最终产品(例如,在化学制品、石油和天然气、食品和饮料、药物、水处理和电力行业中的处理)。

在进一步的实施例中,控制应用132是算法,其补偿跨多个计算节点130的复杂回路的碎片。在又一个实施例中,控制应用132和I/O应用134的采样和执行时间被增加以允许控制周期在处理频率内完成,这消除了死区时间。在替代的实施例中,空闲计算节点130是控制器内的虚拟化元件。这种虚拟化将允许虚拟服务器来提供用于多个计算节点130的空闲容量。

根据本发明的附加方面,处理控制计算系统100提供处理控制系统中的高可用性。在一个实施例中,执行节点110包括执行服务管理器112和控制数据库114。计算节点130-A经由通信信道120在控制数据库114中存储当前状态电子数据集和中间操作电子数据集,所述通信信道120连接到计算节点130-A和执行节点110。执行服务管理器112检测计算节点130-A的故障,并且经由通信信道120启动当前状态电子数据集和中间操作电子数据集从控制数据库114到计算节点130-B的复制。计算节点130-B将当前状态电子数据集和中间操作电子数据集变换成处理控制电子数据集,并接着发送处理控制电子数据集到处理控制装置,所述处理控制装置相应地操纵该处理。

此外,根据附加实施例,处理控制计算系统100可以减少分布式计算环境中的死区时间。例如,执行节点110可以在第一时间段内采样和执行处理控制周期。然后可以在第二时间内操作处理,其中第一时间段与第二时间段并发,并且其中第一时间段短于第二时间段。

本发明的实施例可以包括专用计算机,其包括多种计算机硬件,如下文更详细的描述。

在本发明范围内的实施例还包括计算机可读介质,其用于携带或具有存储在其上的计算机可执行指令或数据结构。这样的计算机可读介质可以是任何可用的介质,其可以由专用计算机访问。通过示例且非限制的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储、或其他磁性存储设备,或者可用于以计算机可执行指令或数据结构的形式携带或存储所需程序代码装置的任何其他介质,所述计算机可执行指令或数据结构可以由通用或专用计算机访问。当信息越过网络或另一种通信连接(或者硬接线、无线、或者硬接线或无线的组合)传输或提供到计算机时,计算机适当地将连接视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。上述组合也应该被包含在计算机可读介质的范围内。计算机可执行指令包括,例如,指令和数据,其使通用计算机、专用计算机、或专用处理装置执行某个功能或某组功能。

下面的讨论旨在提供合适的计算环境的简要概括描述,本发明的方面可以在所述计算环境中被实现。虽然不是必需的,本发明的方面将在计算机可执行指令的一般背景中进行描述,例如程序模块,由网络环境中的计算机来执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,其执行特定任务或实现特定抽象数据类型。计算机可执行指令、相关数据结构、以及程序模块代表用于执行本文所述方法的步骤的程序代码装置的示例。这样的可执行指令或相关数据结构的特定序列代表用于实现在这些步骤中描述的功能的相应动作的示例。

本领域技术人员可以理解的是,本发明的方面可以在具有很多类型的计算机系统配置的网络计算环境中实现,包括个人计算机、手持装置、多处理器系统、基于微处理器或可编程的消费电子设备、网络PC、小型计算机、大型计算机等。本发明的方面还可以在分布式计算环境中实现,在分布式计算环境中任务由本地和远程处理装置来执行,所述本地和远程处理装置通过通信网络(或者通过硬接线链路、无线链路,或者通过硬接线或无线链路的组合)连接。在分布式计算环境中,程序模块可以位于本地和远程存储器存储装置中。

用于实现本发明的方面的示例性系统包括以传统计算机形式的包括处理单元的通用计算装置、系统存储器、以及系统总线,系统总线耦合各种系统组件(包括系统存储器)到处理单元。系统总线可以是任何若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、以及使用任何若干总线架构的本地总线。系统存储器包括只读存储器(ROM)和随机存取存储器(RAM)。基本输入/输出系统(BIOS)(包括基本例程,该基本例程有助于在计算机内的元件之间传输信息,例如在启动的处理中)可以被存储在ROM中。此外,计算机可以包括任何装置(例如,计算机、笔记本电脑、平板电脑、PDA、手机、移动电话、智能电视等),其能够无线地发送IP地址到互联网或从互联网接收IP地址。

计算机还可以包括用于从磁性硬盘读取或写入磁性硬盘的磁性硬盘驱动器、用于从可移动磁盘读取或写入可移动磁盘的磁盘驱动器、以及用于从可移动光盘读取或写入可移动光盘(例如CD-ROM或其他光学介质)的光盘驱动器。磁性硬盘驱动器、磁盘驱动器和光盘驱动器分别通过硬盘驱动器接口、磁盘驱动器接口和光学驱动器接口连接到系统总线。驱动器及其相关计算机可读介质提供计算机可执行指令、数据结构、程序模块和用于计算机的其他数据的非易失性存储。虽然本文所述的示例性环境采用磁性硬盘、可移动磁盘和可移动光盘,但用于存储数据的其他类型的计算可读介质可以被使用,包括磁带盒、闪存卡、数字视频光盘、伯努利盒、RAM、ROM、固态硬盘(SSD)等。

计算机通常包括各种计算机可读介质。计算机可读介质可以是由计算机访问的任何可用介质,并且包括易失性和非易失性介质,可移动和不可移动介质。以举例的方式,且非限制的,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于信息存储的易失性和非易失性、可移动和不可移动介质,所述信息诸如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质是非临时性的并且包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能光盘(DVD)或其他光盘存储装置、SSD、磁带盒、磁带、磁盘存储器或其他磁性存储装置,或可以用于存储所需非临时性信息的任何其他介质,其可以由计算机访问。可替代地,通信介质通常体现为调制数据信号(例如载波或其他传输机制)中的计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。

包括一个或多个程序模块的程序代码装置可以被存储在包括操作系统、一个或多个应用程序、其他程序模块和程序数据的硬盘、磁盘、光盘、ROM和/或RAM上。用户可以通过键盘、定点装置或其他输入装置(例如,麦克风、操纵杆、游戏手柄、卫星天线、扫描仪等)将指令和信息输入到计算机中。这些和其他输入装置通常通过耦合到系统总线的串行端口接口连接到处理单元。可替代地,输入装置可以通过其他接口连接,例如并行端口、游戏端口、或通用串行总线(USB)。监视器或另一种显示装置也经由接口(例如,视频适配器48)连接到系统总线。除了监视器,个人计算机通常包括其他外围输出装置(未示出),例如扬声器和打印机。

本发明的一个或多个方面可以作为应用程序、程序模块和/或程序数据被实施在存储在系统存储器或非易失性存储器中的计算机可执行指令(即,软件)、例程或函数中。软件可以可替代地被远程地存储,如存储在具有远程应用程序的远程计算机上。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,当由计算机中的处理器或其他装置执行程序模块时,该程序模块执行特定任务或实现特定抽象数据类型。计算机可执行指令可以被存储在一个或多个有形的、非临时性计算机可读介质中(例如,硬盘、光盘、可移动存储介质、固态存储器、RAM等),并且由一个或多个处理器或其他装置执行。本领域技术人员可以理解的是,在不同实施例中,程序模块的功能可以根据需要组合和分开。此外,所述功能可以全部或部分地在例如集成电路、应用专用集成电路、现场可编程门阵列(FPGA)等的固件或硬件等效物中来实施。

计算机可以使用到一个或多个远程计算机的逻辑连接来在网络环境中运行。远程计算机可以各自是另一台个人计算机、平板电脑、PDA、服务器、路由器、网络PC、对等装置、或其他常见的网络节点,并且通常包括许多或所有上述关于计算机的元件。逻辑连接包括局域网(LAN)和广域网(WAN),这里通过非限制的示例方式提出。这样的网络环境在办公室范围或企业范围的计算机网络、内联网和互联网中是常见的。

当在LAN网络环境中使用时,计算机通过网络接口或适配器连接到本地网络。当在WAN网络环境中使用时,计算机可以包括调制解调器、无线链路、或用于通过广域网(例如,互联网)建立通信的其他部件。调制解调器,其可以是内置或外置的,经由串行端口接口连接到系统总线。在网络环境中,关于计算机的所述程序模块或其部分可以存储在远程存储器存储装置中。可以理解的是,所示的网络连接是示例性的,并且可以使用通过广域网建立通信的其他方式。

优选地,计算机可执行指令被存储在存储器(例如硬盘驱动器)中,并且由计算机执行。有利地,计算机处理器有能力实时地执行所有操作(例如,执行计算机可执行指令)。

本文示出和描述的本发明的实施例中操作的执行或实施顺序不是必需的,除非另有规定。即,操作可以以任何顺序执行,除非另有规定,并且本发明的实施例可以包括比本文所公开的更多或更少的操作。例如,可以预期的是,在另一个操作之前、同时、或之后,执行或实施特定操作是在本发明的方面的范围内。

本发明的实施例可以利用计算机可执行指令来实现。计算机可执行指令可以被组织到一个或多个计算机可执行组件或模块中。本发明的方面可以利用任何数量和组织的这些组件或模块来实现。例如,本发明的方面不限于附图中所示或本文所述的特定计算机可执行指令或特定组件或模块。本发明的其他实施例可以包括不同的计算机可执行指令或具有比本文示出和描述更多或更少功能的组件。

当引入本发明的方面或其实施例的元件时,冠词“一”、“一个”、“该”和“所述”意在表示存在一个或多个元件。术语“包括”、“包含”和“具有”意在是包容性的,并且表示除了所列元件之外还可以存在其他元件。

已经详细描述了本发明的方面,显而易见的是,在不脱离所附权利要求所限定的本发明的方面的范围的情况下,修改和变化是可能的。由于在不脱离本发明的方面的范围的情况下,可以对上述结构、产品和方法进行各种改变,其目的是包含在以上说明书和附图中所示的所有内容应该被解释为说明性的而不是限制性的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1