用于智能事件分页的系统和方法与流程

文档序号:15742600发布日期:2018-10-23 22:32阅读:275来源:国知局
用于智能事件分页的系统和方法与流程

本公开一般涉及工业过程控制和自动化系统。更具体地,本公开涉及用于工业过程控制和自动化系统中的智能事件分页的系统和方法。



背景技术:

工业过程控制和自动化系统通常用于使庞大和复杂的工业过程自动化。此类系统常规性地包括传感器、致动器和控制器。控制器通常分层布置在控制和自动化系统中。例如,低级别控制器通常用于接收来自传感器的测量结果并执行过程控制操作以生成用于致动器的控制信号。高级别控制器通常用于执行更高级别的功能,诸如规划、调度和优化操作。人类操作员常规性地与控制和自动化系统中的控制器和其他设备交互,诸如以便回顾与各种事件相关联的警告、警报或其他通知,并对控制或其他操作进行调整。



技术实现要素:

本公开提供了用于工业过程控制和自动化系统中的智能事件分页的系统和方法。

在第一实施例中,一种方法包括从客户端设备接收第一事件请求消息。该方法还包括检索自前一事件请求以来最新近发生的并且尚未已经被提供给客户端设备的一个或多个第一事件,直到第一事件分页尺寸和第一事件历史龄期(age)极限为止。该方法进一步包括确定一个或多个第二事件在第一事件历史龄期极限内、并且尚未已经被提供给客户端设备、但是超出了第一事件分页尺寸。该方法还包括填入页面状态字符串以指示所述一个或多个第二事件。该方法进一步包括生成第一响应消息,所述第一响应消息包括所述一个或多个第一事件和所述页面状态字符串。另外,该方法包括将第一响应消息发送给客户端设备。

在第二实施例中,一种装置包括至少一个处理设备和被配置成与客户端设备通信的至少一个接口。所述至少一个处理设备被配置成从客户端设备接收第一事件请求消息。所述至少一个处理设备还被配置成检索自前一事件请求以来最新近发生的并且尚未已经被提供给客户端设备的一个或多个第一事件,直到第一事件分页尺寸和第一事件历史龄期极限为止。所述至少一个处理设备进一步被配置成确定一个或多个第二事件在第一事件历史龄期极限内、并且尚未已经被提供给客户端设备、但是超出了第一事件分页尺寸。所述至少一个处理设备还被配置成填入页面状态字符串以指示所述一个或多个第二事件。所述至少一个处理设备进一步被配置成生成第一响应消息,所述第一响应消息包括所述一个或多个第一事件和所述页面状态字符串。另外,所述至少一个处理设备被配置成将第一响应消息发送给客户端设备。

在第三实施例中,一种非暂时性计算机可读介质包含指令,所述指令在由至少一个处理设备执行时使得所述至少一个处理设备从客户端设备接收第一事件请求消息。该介质还包含指令,所述指令在由所述至少一个处理设备执行时使得所述至少一个处理设备检索自前一事件请求以来最新近发生的并且尚未已经被提供给客户端设备的一个或多个第一事件,直到第一事件分页尺寸和第一事件历史龄期极限为止。该介质进一步包含指令,所述指令在由所述至少一个处理设备执行时使得所述至少一个处理设备确定一个或多个第二事件在第一事件历史龄期极限内、并且尚未已经被提供给客户端设备、但是超出了第一事件分页尺寸。该介质还包含指令,所述指令在由所述至少一个处理设备执行时使得所述至少一个处理设备填入页面状态字符串以指示所述一个或多个第二事件。该介质进一步包含指令,所述指令在由所述至少一个处理设备执行时使得所述至少一个处理设备生成第一响应消息,所述第一响应消息包括所述一个或多个第一事件和所述页面状态字符串。另外,该介质包含指令,所述指令在由所述至少一个处理设备执行时使得所述至少一个处理设备将第一响应消息发送给客户端设备。

从以下附图、描述和权利要求,本领域技术人员可以容易地明白其他技术特征。

附图说明

为了更完整地理解本公开,现在结合附图对以下描述进行参考,在附图中:

图1例示了根据本公开的示例工业过程控制和自动化系统;

图2例示了根据本公开的支持工业过程控制和自动化系统中的智能事件分页的示例设备;

图3例示了根据本公开的在一个场景中的事件的示例时间线,针对该场景,智能事件分页可以有利地用于向请求客户端设备提供事件;

图4例示了根据本公开的使用智能事件分页的客户端设备和事件服务器之间的示例消息流;以及

图5例示了根据本公开的用于智能事件分页的示例方法。

具体实施方式

在本专利文件中,下面讨论的图1到5和用以描述本发明的原理的各种实施例仅是作为例示,并且不应以任何方式将其解释为限制本发明的范围。本领域技术人员将理解的是,可以以任何类型的适当布置的设备或系统来实现本发明的原理。

在工业过程控制和自动化系统中,惯例是操作员在移动设备上请求和接收任意长的事件列表,其中新事件在它们出现时被显示在列表的顶部。这种做法可能因许多因素而变得复杂。例如,该列表对于单个服务器请求来说可能太长,并且因此可能要求事件“分页”,其中按顺序加载事件页面。这允许操作员在上载所有事件之前查看一些事件。此外,移动或远程设备可能具有间歇性通信中断,从而使得打断了事件分页。另外,某些事件可能具有更高的优先级或关键性,诸如当事件涉及到生产过程失败时,从而使事件上载的顺序变得至关重要。也就是说,应该在较旧的事件之前上载较新的事件。此外,一些系统要求可扩缩性,使得系统不能依赖于单个事件服务器来跟踪每个事件请求的状态。

这些因素导致事件通知系统的某些特性。例如,上面的第一个因素可能要求系统以较小的增量传输事件。上面的第二个因素可能会造成大量新事件扰乱该流程并产生新的时间段以用于事件分页的情况,这可能导致已被部分上载到请求设备的多个时间段并使事件跟踪变得困难。上面的第三个因素可能要求系统在时间上向后分页,并且第四个因素可能要求系统中的每个事件服务器相对于事件请求保持无状态。

为了解决这些和其他问题,本公开提供了利用鲁棒算法来跟踪事件分页的状态的智能事件分页系统和方法。如下面更详细地描述的,该算法使用在事件源(诸如事件服务器)和目的地(诸如请求客户端设备)之间传递的“页面状态”字符串,并允许完整的可扩缩性。页面状态字符串允许服务器知晓请求的当前状态,并在准备新的事件页面时相应地做出响应,而不要求服务器以其他方式跟踪此状态。该状态与每个页面一起返回到客户端设备,并与每个新的事件请求一起发送回服务器。页面状态字符串允许系统在任何时间量内以及在任何数量的通信扰乱的情况下准确地返回优先化的事件。

图1例示了根据本公开的示例工业过程控制和自动化系统100。如图1中所示,系统100包括促进至少一种产品或其他材料的生产或处理的各种组件。例如,这里使用系统100来促进对一个或多个工厂101a-101n中的组件的控制。每个工厂101a-101n表示一个或多个处理设施(或其一个或多个部分),诸如用于生产至少一种产品或其他材料的一个或多个制造设施。一般而言,每个工厂101a-101n可实现一个或多个过程并且可以单独地或共同地被称为过程系统。过程系统一般表示被配置成以某种方式处理一个或多个产品或其他材料的任何系统或其部分。

在图1中,使用过程控制的普渡(Purdue)模型来实现系统100。在普渡模型中,“级别0”可以包括一个或多个传感器102a以及一个或多个致动器102b。传感器102a和致动器102b表示过程系统中可以执行各种各样的功能中的任何功能的组件。例如,传感器102a可以测量过程系统中的各种各样的特性,诸如温度、压力或流速。同样,致动器102b可以更改过程系统中的各种各样的特性。传感器102a和致动器102b可以表示在任何适当的过程系统中的任何其他或附加组件。传感器102a中的每一个包括用于测量过程系统中的一个或多个特性的任何适当的结构。致动器102b中的每一个包括用于对过程系统中的一个或多个条件进行操作或影响过程系统中的一个或多个条件的任何适当的结构。

至少一个网络104被耦合到传感器102a和致动器102b。网络104促进了与传感器102a和致动器102b的交互。例如,网络104可以从传感器102a传输测量数据并向致动器102b提供控制信号。网络104可以表示任何适当的网络或网络的组合。作为特定的示例,网络104可以表示以太网、电气信号网络(诸如HART或基金会现场总线网络)、气动控制信号网络、或任何其他或附加的(一个或多个)类型的(一个或多个)网络。

在普渡模型中,“级别1”可以包括一个或多个控制器106,其被耦合到网络104。除其他之外,每个控制器106可以使用来自一个或多个传感器102a的测量结果来控制一个或多个致动器102b的操作。例如,控制器106可以从一个或多个传感器102a接收测量数据并使用该测量数据来生成用于一个或多个致动器102b的控制信号。多个控制器106也可以在冗余配置中操作,诸如当一个控制器106作为主要控制器操作而另一控制器106作为备用控制器操作时(备用控制器与主要控制器同步并且可以在主要控制器故障的情况下接管主要控制器)。每个控制器106包括任何适当的结构,以用于与一个或多个传感器102a交互并控制一个或多个致动器102b。每个控制器106可以例如表示多变量控制器,诸如鲁棒多变量预测控制技术(RMPCT)控制器或实现模型预测控制(MPC)或其他先进预测控制(APC)的其他类型的控制器。作为特定的示例,每个控制器106可以表示运行实时操作系统的计算设备。

两个网络108被耦合到控制器106。网络108诸如通过传输数据到控制器106并从控制器106传输数据来促进与控制器106的交互。网络108可以表示任何适当的网络或网络的组合。作为特定的示例,网络108可以表示一对以太网网络或冗余的一对以太网网络,诸如来自霍尼韦尔国际公司的容错以太网(FTE)网络。

至少一个交换机/防火墙110将网络108耦合到两个网络112。交换机/防火墙110可以将通信量从一个网络传输到另一个网络。交换机/防火墙110还可以阻止一个网络上的通信量到达另一个网络。交换机/防火墙110包括用于提供网络之间的通信的任何适当的结构,诸如霍尼韦尔控制防火墙(CF9)设备。网络112可以表示任何适当的网络,诸如一对以太网网络或FTE网络。

在普渡模型中,“级别2”可以包括被耦合到网络112的一个或多个机器级控制器114。机器级控制器114执行各种功能以支持可与特定的工业装置(诸如锅炉或其他机器)相关联的控制器106、传感器102a和致动器102b的操作和控制。例如,机器级控制器114可以记录由控制器106收集或生成的信息,诸如来自传感器102a的测量数据或用于致动器102b的控制信号。机器级控制器114还可以执行对控制器106的操作进行控制、从而控制致动器102b的操作的应用。另外,机器级控制器114可以提供对控制器106的安全访问。机器级控制器114中的每一个包括用于提供对机器或其他单独装置的访问、对其的控制或与其有关的操作的任何适当的结构。机器级控制器114中的每一个例如可以表示运行微软WINDOWS操作系统的服务器计算设备。附加地或替换地,每个控制器114可以表示嵌入在分布式控制系统(DCS)中的多变量控制器,诸如RMPCT控制器或实现MPC或其他APC的其他类型的控制器。尽管未示出,但是可以使用不同的机器级控制器114来控制过程系统中的不同装置(其中每个装置与一个或多个控制器106、传感器102a和致动器102b相关联)。

一个或多个操作员站点116被耦合到网络112。操作员站点116表示提供对机器级控制器114的用户访问的计算或通信设备,其然后可以提供对控制器106(以及可能地传感器102a和致动器102b)的用户访问。作为特定的示例,操作员站点116可以允许用户使用由控制器106和/或机器级控制器114收集的信息来回顾传感器102a和致动器102b的操作历史。操作员站点116还可以允许用户调整传感器102a、致动器102b、控制器106或机器级控制器114的操作。另外,操作员站点116可以接收和显示由控制器106或机器级控制器114生成的警告、报警或其他消息或显示。操作员站点116中的每一个包括用于支持对系统100中的一个或多个组件的用户访问和控制的任何适当的结构。操作员站点116中的每一个可以例如表示运行微软WINDOWS操作系统的计算设备。

至少一个路由器/防火墙118将网络112耦合到两个网络120。路由器/防火墙118包括用于提供网络之间的通信的任何适当结构,诸如安全路由器或组合路由器/防火墙。网络120可以表示任何适当的网络,诸如一对以太网网络或FTE网络。

在普渡模型中,“级别3”可以包括被耦合到网络120的一个或多个单元级控制器122。每个单元级控制器122通常与过程系统中的单元相关联,所述单元表示一起操作以实现过程的至少一部分的不同机器的集合。单元级控制器122执行各种功能以支持对较低级别中的组件的操作和控制。例如,单元级控制器122可以记录由较低级别中的组件所收集或生成的信息,执行控制较低级别中的组件的应用,并提供对较低级别中的组件的安全访问。单元级控制器122中的每一个包括用于提供对过程单元中的一个或多个机器或其他装置的访问、对其的控制或与其有关的操作的任何适当的结构。单元级控制器122中的每一个可以例如表示运行微软WINDOWS操作系统的服务器计算设备。尽管未示出,但是可以使用不同的单元级控制器122来控制过程系统中的不同单元(其中每个单元与一个或多个机器级控制器114、控制器106、传感器102a和致动器102b相关联)。

可以通过一个或多个操作员站点124来提供对单元级控制器122的访问。操作员站点124中的每一个包括用于支持对系统100中的一个或多个组件的用户访问和控制的任何适当的结构。操作员站点124中的每一个可以例如表示运行微软WINDOWS操作系统的计算设备。

至少一个路由器/防火墙126将网络120耦合到两个网络128。路由器/防火墙126包括用于提供网络之间的通信的任何适当的结构,诸如安全路由器或组合路由器/防火墙。网络128可以表示任何适当的网络,诸如一对以太网网络或FTE网络。

在普渡模型中,“级别4”可以包括被耦合到网络128的一个或多个工厂级控制器130。每个工厂级控制器130通常与工厂101a-101n中的一个相关联,工厂101a-101n可以包括实现相同、相似或不同过程的一个或多个过程单元。工厂级控制器130执行各种功能以支持对较低级别中的组件的操作和控制。作为特定的示例,工厂级控制器130可以执行一个或多个制造执行系统(MES)应用、调度应用、或其他或者附加的工厂或过程控制应用。工厂级控制器130中的每一个包括用于提供对过程工厂中的一个或多个过程单元的访问、对其的控制或与其有关的操作的任何适当的结构。工厂级控制器130中的每一个可以例如表示运行微软WINDOWS操作系统的服务器计算设备。

可以通过一个或多个操作员站点132来提供对工厂级控制器130的访问。操作员站点132中的每一个包括用于支持对系统100中的一个或多个组件的用户访问和控制的任何适当的结构。操作员站点132中的每一个可以例如表示运行微软WINDOWS操作系统的计算设备。

至少一个路由器/防火墙134将网络128耦合到一个或多个网络136。路由器/防火墙134包括用于提供网络之间的通信的任何适当的结构,诸如安全路由器或组合路由器/防火墙。网络136可以表示任何适当的网络,诸如企业范围以太网或其他网络、或更大网络(诸如互联网)的全部或一部分。

在普渡模型中,“级别5”可以包括被耦合到网络136的一个或多个企业级控制器138。每个企业级控制器138通常能够针对多个工厂101a-101n执行规划操作并能够控制工厂101a-101n的各种方面。企业级控制器138还可以执行各种功能以支持对工厂101a-101n中的组件的操作和控制。作为特定的示例,企业级控制器138可以执行一个或多个订单处理应用、企业资源规划(ERP)应用、先进规划和调度(APS)应用、或任何其他或者附加的企业控制应用。企业级控制器138中的每一个包括用于提供对一个或多个工厂的访问、对其的控制或与对其的控制有关的操作的任何适当的结构。企业级控制器138中的每一个可以例如表示运行微软WINDOWS操作系统的服务器计算设备。在本文件中,术语“企业”是指具有一个或多个工厂或要管理的其他处理设施的组织。要注意的是,如果要管理单个工厂101a,则企业级控制器138的功能性可以被并入到工厂级控制器130中。

还可以在系统100中执行各种工厂应用139。在该示例中,工厂应用139被示为驻留在系统100的级别5上,但是工厂应用139可以驻留在系统100的其他级别或附加级别上。工厂应用139可以表示由服务器计算机或其他计算设备执行的任何适当的应用。

可以通过一个或多个企业桌面(也称为操作员站点)140来提供对企业级控制器138和工厂应用139的访问。企业桌面140中的每一个包括用于支持对系统100中的一个或多个组件的用户访问和控制的任何适当的结构。企业桌面140中的每一个可以例如表示运行微软WINDOWS操作系统的计算设备。

普渡模型的各个级别可以包括其他组件,诸如一个或多个数据库。与每个级别相关联的(一个或多个)数据库可以存储与该级别或者系统100的一个或多个其他级别相关联的任何适当的信息。例如,历史记录器(historian)142可以被耦合到网络136。历史记录器142可以表示存储关于系统100的各种信息的组件。例如,历史记录器142可以存储在生产调度和优化期间所使用的信息。历史记录器142表示用于存储和促进信息检索的任何适当的结构。尽管被示为被耦合到网络136的单个集中式组件,但历史记录器142可以位于系统100中的其他位置,或者多个历史记录器可以分布在系统100中的不同位置中。

在特定实施例中,图1中的各种控制器和操作员站点可以表示计算设备。例如,控制器106、114、122、130、138中的每一个以及操作员站点116、124、132、140中的每一个都可以包括一个或多个处理设备和一个或多个存储器,以用于存储由(一个或多个)处理设备所使用、生成或收集的指令和数据。控制器106、114、122、130、138中的每一个以及操作员站点116、124、132、140中的每一个还可以包括至少一个网络接口,诸如一个或多个以太网接口或无线收发器,以便于通过一个或更多网络或通信路径进行通信。

工业设施中的工程师和其他人员经常需要对问题进行故障检修并研究改进机会。在这些或其他活动的过程中,人员会常规性地查找和回顾关于在工业设施内发生的事件的大量信息。当发生关于工业设施的事件时,事件的记录可以存储在事件数据库143中。存储在事件数据库143中的每个事件记录可以包括对一个或多个相关联的事件的引用、事件发生的时间以及其他相关信息。事件数据库143包括用于存储和促进事件检索的任何适当的结构。在一些实施例中,事件数据库143可以表示用于系统100中的多个(可能是所有)数据项的单个公共数据库,从而提供针对事件的集中式存储。在其他实施例中,事件数据库143可以表示跨系统100分布或分散的多个数据库或其他数据储存。

事件数据库143的一个示例使用与被提供给用户的移动设备的通知相结合,其中用户可以使用移动设备来回顾事件或其他数据项以及对其做出响应。移动“智能”设备(诸如苹果的IPHONE和IPAD以及安卓设备)的广泛使用允许用户几乎从每个用户去往的任何地方保持连接并且与远程计算设备交互。除此之外,这还可以允许与工业过程控制和自动化系统相关联的人员接收与事件和其他信息相关联的警告、报警或其他通知,并触发与控制和自动化系统相关联的动作,而不管该人员是否在物理上位于工业现场。例如,在过程控制和自动化系统中生成的事件通常被呈现给当前在一个或多个控制室中轮班的操作员。通常还可能需要或期望告知控制室外的用户、工业工厂外的用户、或者在控制和自动化系统中发生的事件的网络之外的用户。这些事件可以来自各种应用,诸如来自分布式控制系统(DCS)本身、高级过程控制应用、操作应用或业务应用。将描述这些事件的通知传递到用户的手持移动设备使用户能够在几乎任何地方以及任何时间接收通知。

为了支持该功能性,系统100包括事件服务器144,其接收存储在事件数据库143中(并且与系统100的(一个或多个)其他组件相关联)或来自(一个或多个)其他源的事件信息,并且为用户生成事件通知。例如,事件服务器144可以接收标识关于系统100发生的不同事件的信息。所述事件可以与系统100中的任何适当的活动或条件相关联,诸如由系统100中的其他组件生成警告或报警。事件服务器144使用该信息来生成要发送给合适的用户的事件通知和其他消息。事件服务器144还可以响应于用户与那些通知或其他消息的交互来向合适的用户提供附加信息。

事件服务器144通过第三方网络146与第三方服务器148通信。第三方网络146一般表示系统100外部(并且因此不受系统100的所有者/操作员的控制)的任何适当的(一个或多个)通信网络。例如,第三方网络146可以表示互联网、蜂窝通信网络或其他网络或网络的组合。第三方服务器148表示用于向终端用户设备150提供通知的服务器。例如,第三方服务器148可以将通知推送到终端用户设备150,允许终端用户设备150以指定的间隔或在请求时检索通知,或以任何其他适当的方式提供通知。然后,终端用户设备150可以通过网络146连接到事件服务器144,以接收关于通知和事件的细节或查询任何通知。作为特定的示例,可以由比如苹果、三星或谷歌之类的公司使用第三方服务器148来向移动设备提供推送通知或其他通知。

终端用户设备150代表可以接收通知并向用户呈现通知的任何适当的用户设备。终端用户设备150的示例包括智能电话、平板计算机或其他通信/计算设备。具体示例可以包括苹果的IPHONE、苹果的IPAD和安卓设备。

在一个操作方面中,事件服务器144和一个或多个终端用户设备150使用事件分页来传达事件相关信息。在事件分页中,每个终端用户设备150请求事件列表,并且事件服务器144以页面的形式向终端用户设备150返回相关事件的信息。事件数据可以由各种源(诸如图1中所示的组件中的任何)以任何频率生成,包括慢速时段、接着是爆发时段、然后是另一慢速时段。

事件服务器144检测新事件,并用最新事件和尚未处理或被部分处理的时间段内的事件来生成每个新页面。终端用户设备150中的每一个进行初始呼叫以开始事件分页过程,然后进行附加呼叫以收集新页面,直到所有事件都被上载为止。然后,终端用户设备150可以继续以适当的时间延迟进行呼叫以寻找新生成的事件。

如下面更详细地描述的,事件服务器144处的事件通知算法被配置成翻阅历史事件列表,同时在新事件出现时向终端用户设备150返回新事件。该算法可能必须应对由不可靠连接性而引起的中断,同时对最新事件给予优先级。由于这些因素,该算法被配置成跟踪多个被部分处理的时间段,如下面更详细地描述的。

尽管图1例示了工业过程控制和自动化系统100的一个示例,但是可以对图1做出各种改变。例如,控制系统可以包括任何数量的传感器、致动器、控制器、操作员站点、网络、数据库、服务器、终端用户设备和其他组件。而且,图1中的系统100的构成和布置仅用于例示。可以根据特定需要以任何其他适当的配置添加、省略、组合或置换组件。此外,特定功能被描述为由系统100的特定组件执行。这仅用于例示。一般而言,过程控制系统是高度可配置的,并且可以根据特定需要以任何适当的方式进行配置。另外,虽然图1例示了可以执行智能事件分页的一个示例环境,但是该功能性可以用在任何其他适当的设备或系统中。

图2例示了根据本公开的支持工业过程控制和自动化系统中的智能事件分页的示例设备200。例如,设备200可以表示图1的系统100中的事件数据库143、事件服务器144或终端用户设备150。然而,事件数据库143、事件服务器144或终端用户设备150可以使用任何其他适当的设备或系统来实现,并且设备200可以用在任何其他适当的系统中。

如图2所示,设备200包括总线系统202,其支持至少一个处理设备204、至少一个存储设备206、至少一个通信单元208和至少一个输入/输出(I/O)单元210之间的通信。处理设备204执行可以被加载到存储器212中的指令。处理设备204可以包括任何适当数量和(一个或多个)类型的处理器或以任何适当布置的其他设备。处理设备204的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。

存储器212和持久性存储214是存储设备206的示例,其表示能够存储和促进信息(诸如基于暂时性或持久性的数据、程序代码和/或其他适当的信息)的检索的任何(一个或多个)结构。存储器212可以表示随机存取存储器或(一个或多个)任何其他适当的易失性或非易失性存储设备。持久性存储214可以包含支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。

通信单元208支持与其他系统或设备的通信。例如,通信单元208可以包括促进通过至少一个以太网、HART、基金会现场总线或其他网络的通信的网络接口。通信单元208还可以包括促进通过至少一个无线网络的通信的无线收发器。通信单元208可以支持通过(一个或多个)任何适当的物理或无线通信链路的通信。

I/O单元210允许输入和输出数据。例如,I/O单元210可以通过键盘、鼠标、小键盘、触摸屏或其他适当的输入设备提供用于用户输入的连接。I/O单元210还可以将输出发送给显示器、打印机或其他适当的输出设备。

当实现事件数据库143时,设备200可以执行用于实行与事件数据库143相关联的任何功能的指令。例如,设备200可以执行检测与工业控制和自动化系统相关联的事件的指令,以及将事件记录存储在至少一个数据存储设备中的指令。设备200还可以执行检索事件记录并向一个或多个指定目的地提供事件记录的指令。

当实现事件服务器144时,设备200可以执行用于实行与事件服务器144相关联的任何功能的指令。例如,设备200可以执行生成通知并向终端用户设备传输通知的指令。设备200还可以执行支持事件分页的指令和实现如下所述的使用“页面状态”字符串的算法的指令。

当实现终端用户设备150时,设备200可以执行用于实行与终端用户设备150相关联的任何功能的指令。例如,设备200可以执行请求事件通知并将信息呈现给用户的指令。设备200还可以执行支持事件分页的指令和如下所述的使用“页面状态”字符串的指令。

尽管图2例示了支持工业过程控制和自动化系统中的智能事件分页的设备200的一个示例,但是可以对图2做出各种改变。例如,可以根据特定需要以任何其他适当的配置添加、省略、组合、进一步细分或置换组件。而且,计算设备可以具有各种各样的配置,并且图2不将本公开限于计算设备的任何特定配置。

图3例示了根据本公开的在一个场景中的事件的示例时间线300,针对该场景,智能事件分页可以有利地用于向请求客户端设备提供事件。时间线300仅是用于例示在使用智能事件分页的系统中可能遇到的服务中断、尚未处理的时间段和被部分处理的时间段的类型的一个示例。其他系统可能会经历不同的事件场景。

在时间线300中,操作员正在监控工业过程控制和自动化系统(诸如系统100)中的一个或多个过程。以某一频率生成与所述过程相关联的事件。系统的一个示例要求可以是操作员应该首先察看最新近的事件信息,并且然后在有时间接收较旧的事件时察看较旧的事件。此要求可能是由于需要在生成关键警报后尽快察看关键警报。

操作员可以位于具有较差无线接收的区域中,诸如在工厂101a-101n内。操作员具有移动设备(诸如移动电话),其执行具有智能事件分页的移动分页应用。所述移动设备可以表示终端用户设备150中的一个。移动设备从事件服务器请求和接收事件,事件服务器执行事件通知算法并访问事件数据库。所述事件服务器可以表示事件服务器144,并且所述事件数据库可以表示事件数据库143。

为了易于解释,假设系统中的操作每分钟恰好生成一个事件,事件分页尺寸被设置为每页100个事件,并且事件历史龄期极限被设置为二十四小时。本领域技术人员将理解的是,这些值仅仅是示例。一般而言,可以基于例如系统和设备的性能要求和能力来选择事件分页尺寸和事件历史极限。例如,无限的分页尺寸可能允许一次返回数千个事件,从而导致吞吐量拥塞。其他系统可以包括其他事件分页尺寸、事件历史龄期极限以及更频繁或较不频繁且以较差的规律性生成事件的操作。

贯穿一整天,以每分钟一个事件的速率在系统中生成事件。例如,如图3中指示的,在时间段A(上午4:02至上午5:41)期间生成100个事件,并且在时间段B(上午5:42至上午7:20)期间生成99个事件。在时段C到I期间生成其他事件,如时间线中指示的那样。

在上午10:00到达设施时,操作员刷新移动设备的显示,使移动分页应用发起对过去二十四小时的事件的请求。如框301处指示的,移动设备与事件服务器通信并接收最新近的一百个事件。一百个接收的事件对应于时段D的事件,因为时段D的一百个事件是截至上午10:00的最新近的事件。由于接收不良,移动设备然后立即丢失其与事件服务器的连接。

由于移动设备已发起对过去二十四小时的所有事件的请求,因此事件通知算法跟踪移动设备针对其启动了事件分页会话的二十四小时时段。事件服务器能够继续针对此时段的事件分页,但是事件服务器只有在移动设备重新建立了其与事件服务器的连接之后才能继续这样做。

两小时后,中午12:00时,移动设备突然与事件服务器重新连接。在移动设备和事件服务器没有连接的时候,系统中发生了另外一百二十个事件(时段E和F)。在框302处,移动设备与事件服务器通信,事件服务器返回截至中午12:00的最新近的一百个事件,并且这些接收的事件对应于时段F的事件。由于要提供最新近事件的系统要求,因此事件服务器此时不返回来自时段E(10:01-10:20)的二十个事件。然后,移动设备再次丢失与事件服务器的连接。

此时,事件通知算法跟踪两个被部分处理的时间片段:(i)结束于上午10:00的最初的二十四小时时段,事件通知算法已针对其返回了一百个事件,以及(ii)从上午10点到中午12点的两个小时的时段,事件通知算法也已针对其返回了一百个事件。

两小时后,下午2:00时,移动设备与事件服务器重新连接,并在当天剩余时间内保持良好的接收。此时(下午2:00),事件通知算法启动新的时间片段以计及系统中从中午12:00到下午2:00(时段G和H)发生的事件。在框303处,事件服务器返回那些事件中最新近的一百个事件(对应于时段H的事件)。事件通知算法还仍然在跟踪从上午10:00到中午12:00的被部分处理的时段以及结束于上午10:00的被部分处理的时段。由于系统的事件历史龄期极限被设置为24小时,因此较早的时段(结束于上午10:00)正在收缩,并且此时(下午2:00)从前一天的下午2:00延伸到当天的上午10:00。

由于移动设备和事件服务器仍然连接,因此一旦移动设备在框303中接收到时段H的事件,移动设备就可以诸如立即或响应于用户输入来请求下一页事件。事件服务器处的事件通知算法然后确定在自其前一响应以来的短暂时段(可能是几秒或更短,取决于连接和处理等待时间)中没有发生新事件。在框304处,事件服务器然后返回从中午12:00到下午2:00的剩余的二十个未发送事件(对应于时段G的那些)、从上午10:00到中午12:00的剩余的二十个未发送事件(对应于时段E的那些)以及来自结束于上午10:00的时段的六十个未发送事件(对应于时段C的那些)。

在接收到这些事件时,移动设备可以诸如立即或响应于用户输入来立即请求下一页事件。此时,事件服务器已返回在上午7:21到下午2:00之间生成的所有事件,并且事件通知算法仅在跟踪在上午10:00之前的被部分处理的时段。响应于此最新请求,事件通知算法首先检查任何新事件。假设现在是下午2:01,并且事件通知算法发现有一个新事件。在框305处,事件服务器返回那一个新事件(时段I)以及来自结束于上午10:00的时段(时段B)的九十九个最新近的未发送事件。

该分页序列可以继续:事件服务器首先返回可能到达的任何新事件,在不超过一百个事件的页面中连同来自结束于上午10:00的时段的未发送事件。例如,在框306处,事件服务器返回来自结束于上午10:00的时段(时段A)的一百个最新近的未发送事件。事件传输继续一百个事件的页面,直到返回了二十四小时历史时段中的所有事件,其中最终页通常包含少于一百个事件。

为了使移动设备知晓是否有更多事件可用(并且因此是否要从事件服务器请求更多事件),在从事件服务器到移动设备的每个事件返回消息中包括指示符标志(其可以被称为MoreData)。在直到图3中的这一点的时间返回期间(框301-306中的事件以及最终页之前的任何后续页),事件服务器返回被设置为true(真)的MoreData标志,这指示有更多的事件数据立即可用于返回。当返回了事件的最终页并且不再有事件立即可用时,事件服务器返回被设置为false(假)的MoreData标志,这指示不再有事件数据立即可用。

在接收到具有被设置为假的MoreData标志的最终事件列表时,移动设备可以进入“事件休眠”时段,其中移动设备停止与事件服务器通信。在一些实施例中,事件休眠时段可以是用户可配置的时段,并且可以被设置为任何适当的值,诸如10秒(当然,更短或更长的时段是可能的)。在每个事件休眠时段结束时,移动设备可以与事件服务器通信以请求可能发生的任何新事件。

如时间线300中所示,当覆盖中断妨碍接收时,这可能导致事件接收的分段,这可能对跟踪已发送事件和未发送事件而同时满足首先察看最新近事件的要求产生挑战。作为进一步的复杂化,许多系统要求在事件服务器处进行无状态操作。也就是说,事件服务器不存储关于来自客户端的事件请求的已部分完成的时间段的状态信息。相反,事件服务器仅维持事件数据库中的事件列表。事件数据库也不存储来自客户端的事件请求的状态信息。

为了解决这些问题,可以在事件服务器和请求客户端设备之间的事件通信中使用页面状态字符串。页面状态字符串可以表示在事件服务器和客户端之间来回传递的单个数据结构。在一些实施例中,页面状态字符串可以被格式化为序列化的JavaScript对象表示法(JSON)对象。在其他实施例中,XML或任何其他适当的对象到字符串序列化技术都可以用于页面状态字符串。在特定实施例中,页面状态字符串被称为NextSmartPage,但是页面状态字符串可以通过其他名称来提及。

当客户端发起事件请求会话时,事件服务器满足该请求直到预定义事件分页尺寸的极限。事件服务器用事件请求会话的当前状态来填入页面状态字符串,并将页面状态字符串与事件列表一起返回给客户端。页面状态字符串被暂时性地加载到客户端的存储器中,但客户端可能实际上不处理或查询页面状态字符串中的信息。相反,客户端可以保存页面状态字符串,使得不需要将其存储在事件服务器处。当客户端稍后发起其下一个事件请求时,它会将页面状态字符串传递回给事件服务器。对于下一个事件请求,事件服务器基于页面状态字符串中包含的状态信息来完成该请求。对于客户端,页面状态字符串是一个简单的、不透明的字符串,客户端只是接收并返回它。对于服务器,页面状态字符串是描述事件请求会话的状态的一组指令。这里,“状态”可以包括关于已针对其成功返回了事件的时间片段的细节。例如,页面状态字符串可以包括一个或多个Start Time(开始时间)(即,已针对其返回了事件的时间片段的开始时间)和End Time(结束时间)(即,已针对其返回了事件的时间片段的结束时间)的列表。在一些情况下,页面状态字符串可以包括一个或多个事件ID列表(即,由于事件聚集而可能在下一查询中返回的时间片段末尾处的事件ID),如下面更详细地描述的。

取决于实现,页面状态字符串的使用可以提供以下益处中的一个、一些或全部。可以停止并重新启动事件服务器,而不需要任何存储器留存,除了其对事件数据库的访问之外。可以基于请求的内容(包括页面状态字符串)、而不需要基于客户端对事件服务器处的分页状态的任何持久知识来跟踪和满足每个客户端事件请求。此外,在具有多个并行操作的事件服务器的较大部署中,来自客户端设备的事件请求可以随机地去往事件服务器中的任何而不会丢失性能或功能性。另外,客户端可以选择在任何时候放弃分页会话而不用考虑事件服务器处的会话存储器(因为在事件服务器处可能没有针对会话存储器的要求)。

每个事件通常具有事件时间,其用于从根本上对事件进行排序,并且是用于对其返回到移动设备进行优先级化的基础。在一些实施例中,相关事件时间是与事件相关联的最后一个活动发生的时间。最初,这可能是生成事件的时间(诸如,当传感器在10:14确定了锅炉温度超过阈值,并且事件活动时间为10:14时)。当发生了与事件相关联的另外的活动(诸如用户发表评论或取得事件的所有权)时,更新所述事件时间。例如,如果操作员在10:28输入了关于锅炉温度的状态评论,则新事件时间是10:28。

因为事件的相关时间可以改变,所以事件实际上可以在事件时间表内向前移动。因此,在较早时间段期间(诸如在包括10:14锅炉事件活动的时间段中)返回的事件可能以针对稍后时间段(诸如,在包括10:28锅炉事件活动的时间段中)的不同事件时间被再次返回。此外,尚未处理的事件可能会从一个时间段“消失”并重新出现在较新的时间段中。因此,“新事件到达”的指示可以包括出现在事件列表中的全新事件以及从列表中的较早处重新出现的现有事件,因为它们的时间已经更新。

多个事件基本上同时发生,但由于页面尺寸限制而无法在一个返回消息中返回所有这些事件(诸如在同一秒时段期间发生的两百个事件和一百事件的页面尺寸的情况下)。为了确保在每次查询期间不会选择相同的一百个事件,页面状态字符串可以包括具有时间戳的先前已返回的事件标识符的列表,使得可以在下一页面请求中排除这些事件。

事件通知算法还可以取决于可靠的时间序列。用于实现分页的时间戳可以是基于以事件服务器的时钟为基础的事件被插入到列表中的时间或者与事件相关联的最后一个活动发生的时间。在一些实施例中,时间不是基于提供事件的外部系统或客户端设备关于活动发生的时间标记。

如果时间不是从单个源严格排序,则可以使用机制来处理无序时间。例如,当处理接近当前时间的事件查询时,事件服务器可以被配置成跟踪在“时移时段”内处理的所有事件。当新事件出现时,它们可以被识别为新事件。在这样的配置中,当事件服务器收集当前事件时,事件服务器在页面状态字符串内记录在时移时段中处理的所有事件,并且在其下一个当前值查询中再次包括所述时移时段。基于此,事件服务器可以在执行下一个当前值查询时排除已处理的事件。在一些实施例中,时移时段可以是可配置的。一般而言,所允许的时移时段越大,对系统的性能影响就可能越大。

尽管图3例示了在一个场景中的事件的时间线300的一个示例,针对该场景,智能事件分页可以有利地用于向请求客户端设备提供事件,但是可以对图3做出各种改变。例如,此处示出的具体时间线仅为示例,并且仅意图帮助例示事件通知算法可以如何操作。事件通知算法可以被配置成以任何其他适当的方式操作,并且事件通知算法可以与任何其他事件时间线一起操作。

图4例示了根据本公开的使用智能事件分页的客户端设备和事件服务器之间的示例消息流。客户端设备可以表示终端用户设备150中的一个,并且事件服务器可以表示事件服务器144。图4中例示的消息流反映了用于接收包括多个页面的事件历史的一个会话400。会话400可以表示在图3的时间线300中使用的会话中的全部或一部分。如图4所示,会话400包括初始事件页面410、一个或多个下一事件页面420和最终事件页面430。

客户端设备通过向事件服务器发送初始请求消息411来发起会话400。初始请求消息411可以包括SmartPageSizeSmartPageAgeNextSmartPage值。SmartPageSize值表示事件分页尺寸极限,其在时间线300中被设置为一百。SmartPageAge值表示事件历史龄期极限,其在时间线300中被设置为二十四小时。NextSmartPage值表示页面状态字符串。因为初始请求消息411是第一个请求,所以还没有要跟踪的被部分处理的事件段,并且NextSmartPage可以在初始请求消息411中被设置为null(空)。在其他实施例中,代替空的NextSmartPage,初始请求消息411可以简单地不包括NextSmartPage值。

事件服务器可以识别出初始请求消息411是初始请求,诸如通过空的NextSmartPage或不存在NextSmartPage。事件服务器检索最新近的事件,直到SmartPageSize且远至SmartPageAge。然后,事件服务器基于针对会话400是否存在尚未被返回的未处理事件来填入NextSmartPageMoreData标志。NextSmartPage中填入的信息可以包括事件服务器(或并行事件服务器)在后续事件页面中(诸如在下一事件页面420中)可以使用的事件状态信息。事件服务器在响应消息412中将检索到的事件、已填入的NextSmartPageMoreData标志返回给客户端设备。

如果MoreData标志被设置为真,则客户端设备知晓有更多事件数据要接收。客户端设备通过向事件服务器发送下一请求消息421来请求会话400中的下一事件页面420。下一请求消息421包括SmartPageSizeSmartPageAgeNextSmartPage。这次,NextSmartPage是客户端设备在响应消息412中接收到的已填入的NextSmartPage

事件服务器接收下一请求消息421并再次检索事件,这次基于NextSmartPage中的信息将任何未处理或已部分处理的事件块纳入考虑。然后,事件服务器重新填入NextSmartPage并将MoreData标志设置为真或假。事件服务器在响应消息422中将新检索的事件、重新填入的NextSmartPageMoreData标志返回给客户端设备。

只要针对该会话存在剩余事件,客户端设备就可以继续发送请求消息421并接收响应消息422。这通常是一个紧密循环,其中在事件服务器处查询事件并将其发送给客户端设备,并且然后立即提交下一请求。最终,事件服务器将接收针对最终事件页面430的请求消息421。事件服务器检索剩余事件并将MoreData标志设置为假。事件服务器在最终响应消息432中将剩余事件、重新填入的NextSmartPageMoreData标志返回给客户端设备。

此时,客户端设备可以执行某一用户可配置时间的休眠。在休眠结束时,客户端设备可以重复初始事件页面410或下一事件页面420。该过程可以继续下一事件页面420而没有延迟,直到MoreData标志再次转换为假。

尽管图4例示了使用智能事件分页的客户端设备和事件服务器之间的消息流的一个示例,但是可以对图4做出各种改变。例如,具有任何适当格式的任何其他适当的消息可以用作智能事件分页的一部分。

图5例示了根据本公开的用于智能事件分页的示例方法500。为了易于解释,方法500被描述为使用事件服务器(诸如图1的事件服务器144)来执行。此外,方法500可以包括或表示图3的时间线300和图4的会话400的各个方面。然而,方法500可以与任何适当的设备或系统一起使用。

在步骤501处,事件服务器从客户端设备接收事件请求消息。例如,这可以包括事件服务器144从终端用户设备150接收初始请求消息411或下一请求消息421。事件请求消息可以包括事件分页尺寸和事件历史龄期极限。事件请求消息还可以包括NextSmartPage字符串。

在步骤503处,事件服务器检索自前一事件请求以来最新近发生的并且尚未已经被提供给客户端设备的一个或多个事件,直到事件分页尺寸和事件历史龄期极限为止。例如,这可以包括事件服务器144检索事件,类似于框301-306中描述的场景。

在步骤505处,事件服务器确定一个或多个第二事件在第一事件历史龄期极限内、并且尚未已经被提供给客户端设备、但是超出了事件分页尺寸。这可以类似于事件服务器确定图3中的时段A-C中的事件超过了在框301中发送的事件的事件分页尺寸。

在步骤507处,事件服务器填入页面状态字符串以指示第二事件。稍后,在步骤509处,事件服务器生成响应消息,所述响应消息包括检索到的事件、页面状态字符串和MoreData标志。在步骤511处,事件服务器将响应消息发送给客户端设备。例如,这可以包括事件服务器向客户端设备发送响应消息412、422、432。

在步骤513处,确定是否有更多事件可用于发送。例如,这可以包括客户端设备读取响应消息中的MoreData标志。如果确定了更多事件可用于发送,则该方法返回到步骤501。

尽管图5例示了用于智能事件分页的方法500的一个示例,但是可以对图5做出各种改变。例如,虽然被示为一系列步骤,但是图5中所示的各个步骤可以重叠、并行发生、以不同顺序发生或多次发生。此外,可以组合或移除一些步骤,并且可以根据特定需要添加额外的步骤。而且,虽然关于工业过程控制系统中的事件描述了方法500和事件服务器,但是方法500和事件服务器可以与其他类型的设备和系统结合使用。

在一些实施例中,由计算机程序实现或支持本专利文件中描述的各种功能,所述计算机程序由计算机可读程序代码形成并被实施在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动、紧凑盘(CD)、数字视频盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质排除传送暂时性电气或其他信号的有线、无线、光学或其他通信链路。非暂时性计算机可读介质包括数据可以永久存储于其中的介质和数据可以存储于其中并稍后可以被覆写的介质,诸如可重写光盘或可擦存储器设备。

对遍及本专利文件所使用的某些词或短语阐述定义可以是有利的。术语“应用”和“程序”是指一个或多个计算机程序、软件组件、指令集、进程、函数、对象、类、实例、相关数据、或适用于以适当的计算机代码(包括源代码、目标代码或可执行代码)实现的其部分。术语“通信”及其派生词既包括直接通信又包括间接通信。术语“包括”和“包含”及其派生词意指包括而不限于。术语“或”是包含性的,意指和/或。短语“与...相关联”及其派生词可以意指包括、被包括在...之内、与...互连、包含、被包含在...之内、连接到…或与…连接、耦合到...或与...耦合、与...可通信、与...协作、交错、并置、与...紧接、被接合到...或与...接合、具有、具有...的性质、具有对或与...的关系等等。短语“...中的至少一个”,当与项目列表一起使用时,意指可以使用所列项目中的一个或多个的不同组合,并且可能需要列表中的仅一个项目。例如,“A、B和C中的至少一个”包括以下组合中的任何:A、B、C、A和B、A和C、B和C、以及A和B和C。

不应将本申请中的描述解读为暗示任何特定元件、步骤或功能是必须被包括在权利要求范围内的必要或关键元素。所申专利的主题的范围仅由所授权的权利要求来限定。此外,没有任何一项权利要求意图关于所附权利要求或权利要求要素中的任何援引35 U.S.C.§112(f),除非在特定权利要求中明确使用了“用于……的部件”或“用于……的步骤”的确切词语,后面跟随着定义功能的分词短语。在权利要求内使用诸如(但不限于)“机构”、“模块”、“设备”、“单元”、“组件”、“元件”、“构件”、“装置”、“机器”、“系统”、“处理器”或“控制器”之类的术语被理解并且旨在指代如通过权利要求本身的特征进一步修改或增强的相关领域技术人员已知的结构,而不旨在援引35 U.S.C.§112(f)。

虽然本公开已经描述了某些实施例和一般地相关联的方法,但是对本领域技术人员来说这些实施例和方法的变更和置换将是显而易见的。因此,示例实施例的以上描述不限定或约束本公开。其他改变、取代和变更也是可能的而不脱离如由以下权利要求限定的本公开的精神和范围。

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