CN1678998A - 系统事件过滤和给过程控制对象连接和嵌入法客户的通知 - Google Patents

系统事件过滤和给过程控制对象连接和嵌入法客户的通知 Download PDF

Info

Publication number
CN1678998A
CN1678998A CN03820625.0A CN03820625A CN1678998A CN 1678998 A CN1678998 A CN 1678998A CN 03820625 A CN03820625 A CN 03820625A CN 1678998 A CN1678998 A CN 1678998A
Authority
CN
China
Prior art keywords
event
incident
opc
state
notice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN03820625.0A
Other languages
English (en)
Inventor
J·M·普拉尔
J·T·乌尔索
H·J·林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell International Inc filed Critical Honeywell International Inc
Publication of CN1678998A publication Critical patent/CN1678998A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/546Xcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开了一种在窗口环境中运行,向OPC客户提供事件通知的系统。对在该系统中产生的NT事件进行过滤,并将其转换为OPC格式,以便呈现给OPC客户。转换后的NT事件通知包括产生该NT事件的来源的指定。该系统包括过滤器配置工具,它允许输入用户定义的过滤器判据和转换信息。转换信息包括来源指定、事件严重性、事件类型(简单的、跟踪的和状态的)、事件类别、事件状态、事件子状态和事件属性。

Description

系统事件过滤和给过程控制对 象连接和嵌入法客户的通知
本申请要求2002年6月28日提交的美国临时申请No.60/392,496,和2002年12月27日提交的美国临时申请No.60/436,695的优先权,其整个内容附此值参考。
发明领域
本发明一般地涉及连接在网络中的多个计算节点之间的系统事件的滤过和通知,更具体地说,涉及用于在窗口管理设施(WMI)环境中完成滤过和通知的方法和装置。
发明背景
基于Web(万维网)的企业管理(WBEM)是由分布式管理任务特设组(DMTF)采取的主动行动,以便针对其管理需要为企业系统管理者提供一种标准的低成本的解决方案。WBEM主动行动包括多个任务,其范围是从简单的工作站配置到跨越多个平台的全面的企业管理。处于主动行动中心的是一种通用信息模型(CIM),它是一种可扩展的数据模型,用以代表典型管理环境中存在的对象。
WMI是WBEM主动行动针对Microsoft窗口平台的实现。通过扩展CIM来代表存在于WMI环境中的对象,并通过实现管理基础设施,既支持管理对象格式(MOF)语言又支持通用编程接口,WMI使不同应用成为可能,以便透明地管理各种各样的企业组成部分。
WMI基础设施包括以下组成部分:
实际的WMI软件(Winmgmt.exe),一种给应用程序提供对管理数据的一致访问的组成部分。
通用信息模型(CIM)储存库,用于管理数据的中央存储区。
CIM储存库通过定义新的对象类来扩展,并可以用静态定义的类实例,或者通过动态实例提供者来繁殖。
用于过程控制的OLE(对象连接和嵌入法)(OPCTM)是一种新出现的软件标准,用来为商业应用提供对工厂基础数据的易于使用和通用的访问方法。传统上,要求每个软件或应用程序的开发者写一个定制接口或服务器/驱动程序,来与硬件现场装置交换数据。OPC通过定义一个通用的高性能的接口,使所述项工作只需做一次,而以后通过人机接口(HMI)、监视控制和数据采集SCADA、控制和定制应用程序容易地重用,消除了这种必要性。
由OPC基金会维护的OPC规格,是一个非专有的技术规格,并在Microsoft的OLE/COM技术的基础上定义了一组标准接口。组件对象模型(COM)使为诸如分布式控制系统、可编程逻辑控制器、输入/输出(I/O)系统和智能现场装置等实时信息服务器定义标准对象、方法和属性成为可能。另外,使用Microsoft的OLE自动化技术,OPC可以通过局域网、远程网址或互联网提供工厂基础数据的办公室应用。
OPC既向最终用户又向硬件/软件制造商提供好处,包括:
开放的连通性:用户可以从更加多种多样的工厂基础装置和客户软件中进行选择,更好地利用出类拔萃的(bestinbreed)应用程序。
高性能:通过使用诸如″自由线程″等最新技术OPC提供性能极高的特性。
改进销售生产率:因为OPC是一个开放的标准,软件和硬件制造商可以在连接问题上花较少的时间,而在应用问题上花较多时间,避免事倍功半。
OPC在自动化和控制应用、现场装置和商业与办公室应用中间培育更大的可相互操作性。
在基于PC的过程控制环境下,不仅与过程相关的事件是重要的,而且某些窗口系统事件在控制策略和/或诊断上也起着关键作用。例如,一个表明CPU或存储器的使用已经达到某个阈值,要求用户在系统性能开始下降之前采取措施的事件。然而,窗口系统事件与OPC标准不一致,因而对OPC客户是不可用的。本发明为解决所述问题提供一种机制。
本发明还提供许多附加的优点,在下面的描述中就会变得明显。
发明概要
本发明的方法涉及向OPC客户通知OPC报警和事件(OPC-AE)和NT报警和事件(NT-AE)。所述方法把NT-AE的NT-AE通知转换为对OPC客户的OPC-AE通知。
OPC客户,例如,相对于建立NT-AE的源而言,或者本机的或者是远方的。OPC-AE通知最好通过多址通信链路或WMI业务呈现给OPC客户。
在本发明方法的一个实施例中,通过多址通信链路使各OPC-AE通知在多个节点之间同步。
在本发明方法的另一个实施例中,按照过滤判据过滤NT-AE,所述判据最好由过滤器配置工具或系统事件过滤器snap-in提供。
在本发明方法的再一个实施例中,转换步骤把附加的信息添加到NT-AE通知中,以便产生OPC-AE通知。
在本发明方法的一种类型的实施例中,附加信息包括建立NT-AE通知的源的指定,所述通知最好包括建立所述NT-AE通知的计算机名称和NT-AE字符串的插入。插入字符串,例如,识别产生NT-AE的组件。
在所述方法的另一种类型的实施例中,附加信息包括事件的严重性,就是NT顺从严重性。转换步骤提供从NT顺从严重性到OPC顺从严重性的转换。所述转换最好基于NT-AE的预定义的严重性值或基于已记录严重性值。
在所述方法的再一种类型的实施例中,附加信息包括一个或多个项目,后者从由以下信息构成的组中选择:事件cookie、源指定、事件严重性、事件类别、事件类型、事件可应答性和事件应答状态。
在本发明方法的上述实施例中,NT-AE包括状态事件、简单事件或跟踪事件。状态事件,例如,反映特定源的状态。
本发明的装置包括:系统事件提供器,把NT-AE的NT-AE通知链接到附加信息;和系统事件服务器,它把NT-AE通知和附加信息包装为OPC-AE通知,以便呈现给OPC客户。
OPC客户,例如,相对于建立NT-AE通知的源而言,或者是本机的或者是远方的。TOPC-AE通知最好通过多址通信链路或WMI业务呈现给OPC客户。
在本发明装置的一个实施例中,通过多址通信链路使各OPC-AE通知在多个节点之间同步。
在本发明装置的另一个实施例中,按照过滤判据过滤NT-AE通知,所述判据最好由过滤器配置工具或系统事件过滤器snap-in提供。
在本发明装置的再一个实施例中,系统事件提供器把附加的信息添加到NT-AE通知中,以便产生OPC-AE通知。
在本发明装置的一种类型的实施例中,所述附加信息包括建立NT-AE通知的源的指定,所述通知最好包括建立所述NT-AE通知的计算机名称和NT-AE字符串的插入。插入字符串,例如,确认产生NT-AE的组件。
在本发明装置的另一种类型的实施例中,附加信息包括事件严重性,就是NT顺从严重性。系统事件提供器提供NT顺从严重性到OPC顺从严重性的转换。所述转换最好基于NT-AE的预定义的严重性值或基于已记录的严重性值。
在本发明装置的再一种类型的实施例中,附加信息包括一个或多个项目,后者从由以下信息构成的组中选择:事件cookie、源指定、事件严重性、事件类别、事件类型、事件可应答性和事件应答状态。
在本发明装置的上述实施例,NT-AE包括状态事件、简单事件或跟踪事件。状态事件,例如,反映特定源的状态。
在本发明装置的再一个实施例中,NT事件提供器提供NT-AE;而过滤器按照过滤器判据过滤NT-AE通知,使得只有满足所述过滤器判据的NT-AE通知才被系统事件提供器链接到OPC-AE。在所述实施例的一种类型中,一个或多个NT-AE是由一个源产生并反映所述源状态的状态事件。系统事件提供器响应由于源的状态改变而产生的各状态事件中后期出现的状态事件,在激活和非激活之间改变各状态事件中早期出现的状态事件的状态。系统事件提供器还把早期和后期出现的状态事件的NT-AE通知链接到OPC-AE通知,以便呈现给OPC客户。
在本发明方法的再一个实施例中,一个或多个NT-AE是由一个源产生并反映所述源状态的状态事件。另外,所述方法还响应由于源的状态改变而产生的各状态事件中后期出现的状态事件,在激活和非激活之间改变各状态事件中早期出现的状态事件的状态。转换和呈现步骤最好把早期和后期出现的状态事件的NT-AE通知转换到OPC-AE通知,以便呈现给OPC客户。
本发明一个附加的方法繁殖过滤器,所述过滤器过滤NT-AE通知以便将其转换为OPC-AE通知。所述方法输入NT-AE,对于所述NT-AE,所述NT-AE的通知将由所述过滤器传送并用从由以下信息构成的组中选择的一个或多个事件特性配置所述输入的NT-AE:事件类型、事件源、事件严重性、事件类别、事件状态、事件子状态和事件属性。
按照本发明附加方法的一种类型,事件类型包括状态的、简单的和跟踪的。
按照本发明附加方法的另一种类型,事件源包括建立特定的NT-AE的计算机名称和特定NT-AE的插入字符串。
按照本发明附加方法的再一种类型,事件严重性包括预定义的严重性值或已登录的严重性值。
按照本发明附加方法的再一种类型,事件类别包括装置的状态。
按照本发明附加方法的另一种类型,对于特定的事件类别,事件属性包括特定NT-AE的可应答性和激活或非激活的状态。
本发明的配置器繁殖过滤器,所述过滤器过滤NT-AE通知以便将其转换为OPC-AE通知。配置器包括:提供由所述过滤器传送的NT-AE过滤器的入口的配置装置和输入的NT-AE的配置,所述NT-AE具有从由以下信息构成的组中选择一个或多个事件特性:事件类型、事件源、事件严重性、事件类别、事件状态、事件子状态和事件属性。
按照本发明配置器的一种类型,事件类型包括状态的,简单的和跟踪的。
按照本发明配置器的另一种类型,事件源包括建立特定的NT-AE的计算机名称及其特定NT-AE的插入字符串。
按照本发明配置器的再一种类型,事件严重性包括预定义的严重性值或登录的严重性值。
附图的简要描述
联系附图参照以下的说明书,就会明白本发明的其它目的、优点和特征,其中类似的标号标示类似的结构元素,附图中:
图1是包括本发明的事件滤过和通知装置的系统的方框图;
图2是表示按照本发明的事件滤过和通知装置的不同的运行期系统管理组件之间的通信途径的方框图;
图3是表示本发明的事件滤过和通知装置所使用的不同的计算节点之间的通信链路的方框图;
图4是描绘系统事件到OPC事件转换的方框图;
图5是描绘系统事件服务器接口的方框图;以及
图6-10是本发明的过滤器配置工具的选择框。
推荐实施例的描述
参见图1,系统20包括通过网络30互联的多个计算节点22、24、26和28。网络30可以是任何适当的有线、无线和/或光网络并可以包括互联网、企业网、公共电话网络、局域网和/或广域网和/或其它通信网络。虽然只表示了4个计算节点,但是计算节点26和28之间的虚线表示可以使用多一点或少一点计算节点。
系统20可以是针对任何应用而配置的,跟踪在计算节点内出现的或由一个或多个计算节点跟踪事件。举例来说,为了描述的完整性,在这里系统20将被描述用于过程32的控制。为此目的,计算节点22和24设置成控制、监视和/或管理过程32。计算节点22和24表示为连接到过程32。这些连接可以是到总线的连接,不同的传感器和/或控制装置都连接到总线上。例如,用于一个或多个计算节点22和24的本地总线可以是现场总线基金会(FF)局域网。计算节点26和28不直接连接到过程32,而可以用于计算节点的管理、观察及其他目的。
参见图2,计算节点22、24、26和2 8每一个都包括本发明的节点计算机34。节点计算机34包括多个运行期系统组件,就是说,WMI平台36、重定向器服务器38、系统事件服务器(SES)40、HCI客户通用程序管理器42、组件管理器44和系统显示器46。WMI平台36包括本地组件行政管理业务提供器48、远程组件行政管理提供器50、系统事件提供器(SEP)52、名称业务提供器(NSP)54、同步储存库提供器(SRP)56和”心跳”测试包提供器58。图2中的直线代表不同的运行期系统管理组件之间的通信途径。
SRP 56可以用来使其计算节点内储存库的数据与位于系统20其它计算节点的储存库的数据同步。例如,计算节点的每个同步提供器,诸如SEP 52和NSP 54,两者都有相关联的数据储存库并且是SRP56的客户。
系统显示器46用作使用户可以配置和监视计算节点22、24、26或28及其被管理组件,诸如监视和控制过程32的传感器和/或变送器的工具。系统显示器46提供执行远程节点和组件配置的能力。系统显示器46从它的本地”心跳”测试包提供器58和SEP 52接收节点和系统状态。系统显示器46连接到每一个被监视的节点的本地组件行政管理业务提供器48,以便接收被管理组件的状态。
NSP 54向WMI客户提供别名和相关联的组件信息的子集。计算节点的NSP 54根据不同的计算节点的另一个建立的NSP 54(若存在)的数据库来初始化相关联的数据库,然后利用其计算节点的SRP 56使其相关联的数据库同步。
SEP 52作为系统事件公布本地事件,并在预定范围内维护系统事件的同步的本地拷贝。SEP 52向WMI客户展示系统事件。如2图所示,系统显示器46和SES 40都是SEP 52的客户。
组件管理器44监视和管理本地被管理组件。组件管理器44实现WMI提供器接口,它向标准WMI客户展示被管理组件的状态。
“心跳”测试包提供器58向连接的WMI客户提供当前报告”心跳”测试包的所有计算节点的清单和”心跳”测试包提供器58多址通信范围内计算节点的增加和拆除的事件通知。
SRP 56进行保持信息同步所必需的较低层的节点间通信。SEP 52和NSP 54是在SRP 56的能力的基础上建立的。这使SEP 52和NSP 54可以分别维护系统事件和别名的同步数据库。
参见图3,SRP 56和”心跳”测试包提供器58利用多址通信链路70进行节点间通信。另一方面,系统显示器46利用WMI业务与它的本地”心跳”测试包提供器58和SEP 52通信。系统显示器46还利用WMI业务与本地和远程被管理节点上的本地组件行政管理业务(CAS)提供器48和远程组件行政管理业务(CAS)提供器50通信。
系统状态显示器46提供一个通用框架,售主通过所述框架移交综合系统管理工具。与系统状态显示器46紧密耦合的是WMI业务。售主通过WMI展示系统组件的管理和监视用的可定购的(scriptable)接口。系统状态显示器46和WMI一起提供可定制和可扩展的通用用户接口和信息数据库。系统状态特征60是作为提供计算机和被管理组件状态的层次视图的MMC Snap-in实现的。系统状态特征60使用激活目录业务接口(ADSI),以便读出定义TPS域的已配置的域/组织单元拓扑结构。每个节点计算机上的WMI提供器提供访问配置和状态信息的途径。是通过WMI事件通知来更新状态信息。
系统显示器窗口划分成三部分:
·菜单/标题-通用和定制控件,显示在窗口顶部,用以控制窗口或项目行为。
·控制台窗口的范围框-左框,用以显示所安装的snap-in及其所包含的项目的树状图。
·控制台窗口的结果框-右框,显示有关在范围框内选取的项目的信息。视图模式包括大图标、小图标、清单和详图(默认视图)。被管理的组件还能提供在结果框内显示用的定制的ActiveX控件。
系统事件提供器
SEP52是一种增强了的NT登录事件的同步提供器。它使用过滤器表84来限制要处理的NT登录事件,并用产生配合OPC-AE使用的事件所要求的数据来增强这些传送来的事件。它维护这些事件的储存库,后者利用SRP56与已配置的激活目录范围内的每个节点同步。SEP52负责按照事件过滤器文档内定义的事件类型和属性管理事件发送和状态。
SEP 52是作为WMI提供器实现的。WMI提供一种事件通知、储存库维护和访问和方法输出用的通用接口。不要求定制代理服务器而接口是可定购的。SEP52利用SRP56使它的储存库内容与已配置的激活目录范围内的全部节点同步。这减少网络频带宽度使用量和减少连接管理和同步问题。
多址通信组地址和端口以及激活目录范围从同步储存库标准配置页配置。像其它所有标准配置页一样,所述选项将由系统状态显示器46显示在计算机配置环境菜单上。
默认的SEP 52客户配置将写到SRP客户配置登录键。所述键将包含名称和范围值。名称是对用户友好的SEP业务用的名称,而范围将默认为″TPSDomain″,指示包含激活目录对象(TPS域的组织单元)。
并不是全部NT事件都发送到系统事件预定器。用过滤器表来确定一个事件是否一直发送到客户,以及是否增添数据,从NT事件建立OPC事件。在所述表中没有登录的事件将被忽略。过滤器表用配置工具创建。
OPC事件要求附加的信息,诸如事件类别、事件源和事件是否可应答等,可以在NT事件中获得。
过滤器表最好装有把NT事件转换为OPC事件格式用的附加信息。事件源一般是计算机名称和组件名称的结合,由点号分开,但是它可以配置成没有计算机名称。计算机名称是产生所述事件的计算机名称。组件名称是事件的插入字符串中的一个。它一般是第一个插入字符串,但是也可以配置成任何一个的插入字符串。
利用标准事件登录方法(Win32或WMI)来把事件登录到NT事件登录文档。SEP 52登录关于新的事件的InstanceCreationEvent通知。得到通知时,若所述事件是直通事件,则建立所述事件的提供器维护的摘要记录,而InstanceCreationEvent是组播到系统事件多址通信组。
SEP 52读取由系统事件过滤器Snap-in 86定义的过滤器表。过滤器表确定哪些事件将登录到SEP储存库和定义产生OPC-AE事件所需要的附加数据。系统事件过滤器表84给每一事件类型指定一个严重性,因为窗口事件严重性不一定直接转换为要求的OPC事件严重性。若指定0的严重性,则被指定给所述原来的NT事件的事件严重性将转换为一个预先指定的OPC严重性值。NT事件到OPC事件严重性转换值列于表27。
两个主要的事件类别是由SEP 52处理的:与状态有关的事件和简单的/跟踪事件。与状态有关的事件在所配置范围内所有节点上的SEP 52内一个同步储存库中维护。简单的或跟踪事件实时提交给任何连接的客户。对于简单的或跟踪事件,不保证递送,不维护储存库状态,并且不可能进行事件恢复。
SEP 52通过源和状态名称组合来维护一个所有与状态有关的事件的映射。新的与状态有关的事件产生时,与同一源和状态名称登录的事件将通过带有Active=FALSE的特性的_InstanceModificationEven自动地被去激活。
条件状态的改变会产生一个相应的跟踪事件,SEP 52产生一个外部的事件通知,识别所述条件(Condition)、状态(state)、时间戳和用户。
当完成同步时,SEP 52将要在同步视图更新与状态有关的事件的激活状态,其状态在本机事件映射中维护。若所述本机映射不包含一个包括在所述同步视图中的状态事件,则所述事件将在所述储存库中被去激活。
因为状态事件和它们的相关返回正常事件(使有关激活状态事件被去激活)是松耦合,所以一个事件登录项目可能不登录要求的返回正常事件,而所述与状态有关的事件在激活状态下可能没有正确地被去激活。为了保证这些事件可以从SES(GOPCAE)状态数据库和所述SEP储存库清除,每个确认的激活事件都将继续运行一段可以配置的周期(在安装过程中设置一个默认周期),并且当所述周期过去时被去激活。
简单事件和跟踪事件不保存在所述SEP储存库中,而是作为外部事件提交给任何连接的客户。这些事件通过SRPSendExtrinsicNotification()方法提交给所有SEP。简单的或跟踪事件不恢复。这些事件不可应答。若一个事件显示器选择要显示这些事件,则在一个节点上应答或清除事件的其它装置不会影响其它节点。
将增加新的WMI类,来支持外部跟踪的和简单事件类型。SEP将用SRP 56来登记这个的新类(TPSSysEvtExt)。SRP 56将会发现,所述类是从WMI ExtrinsicEvent类衍生的,而不会执行这些事件的任何同步。SRP 56将只会以直通方式动作。
与状态有关的事件的源和状态名称映射将由SEP 52维护。每一个SEP 52都将要管理所述在本机节点产生的与状态有关的事件的激活状态。
在所述SEP储存库中维护的状态事件复制到SEP范围内的所有节点。因此,在启动或由于被破坏的同步组再联合而重新同步的过程中,所有与状态有关的事件都将恢复。简单事件和跟踪事件是过渡性的,单次事件并且不能恢复。
SEP的TPS_SysEvt类实现ACK()方法。所述方法将被修改,以增加备注参数。所述WMI类由SES实现,TPS_SysEvt也将被修改,以增加AckComment字符串特性、AcknowledgelD字符串和布式(Boolean)激活特性。新的ModificationSource字符串特性将由SEP设置,也就是说生成InstanceModificationEvent。
在多址通信组内的任何节点上都可以应答事件。所述确认被组播到所述系统事件多址通信组的全部成员,所述系统事件多址通信组被包装在InstanceModificationEvent对象中。每个节点上的SEP52都将登录一个信息消息到它的本机CCA系统事件登录库,识别应答的源。
一旦事件已经被应答,便可以将其从所述系统事件清单清除。这从内部维护的事件清单删除所述事件,并产生一个准备组播到所述系统事件多址通信组的InstanceDeletionEvent。信息报文将递送到CCA系统事件登录文件,识别事件清除请求的源。
WMI提供器对象
WMI提供器对象实现IWbemProviderlnit接口的″Initialize″方法、IWbemServices接口的CreatelnstanceEnumAsync和ExecMethodAsync方法以及IWbemEventProvider接口的ProvideEvents方法。所述Initialize方法完成内部置初始化。CreatelnstanceEnumAsync方法为内部事件清单中的每一项创建一个实例,并通过IWbemObjectSink接口将其发送到客户。两个方法都可以通过所述ExecMethodAsync方法访问:AckEvent和ClearEvent。它们更新内部事件清单并调用SRP客户对象来通知外部节点。ProvideEvents方法保存所述客户的IwbemObjectSink接口,以备在事件发生时使用。实现三个回调(callback)方法,CreatelnstanceEvent,ModifyinstanceEvent和DeletelnstanceEvent,来通过所述保存了的IWbemObjectSink接口通知它的客户。CreatelnstanceEvent方法由所述NT事件提供器对象当事件在本机建立时调用,并且当事件在远方建立时由SRP客户对象调用。ModifylnstanceEvent方法和DeletelnstanceEvent方法都在事件被应答或在远方被删除时调用。
在服务器启动过程中,所述子系统从多字符串登录键读取到达过滤器表的目录途径。它装入过滤器表并在存储器中创建本机映射。在运行期,它提供由NT事件登录WMI客户调用的方法,来确定事件是否传送到预定器并提供附加的OPC特定数据。
NT事件客户对象
在服务器启动过程中,所述子系统用所述NT事件登录提供器登录,并在事件登录到所述NT事件登录文档时请求通知。收到实例建立通知时,所述子系统调用所述事件过滤的子系统并用附加的数据构造事件。然后它调用SRP客户对象,把通知发送到外部节点。
SRP客户对象
在服务器启动过程中,SRP客户客户对象用SRP 56登录。若立即需要数据同步,它将接收SyncWithSource消息。若SRP 56判定内部事件清单数据失去同步,则它还定期地接收SyncWithSource消息。收到SyncWithSource消息时,它使用所述消息的″源″特性,连接外部节点的SEP 52并请求所述事件清单。然后用新的清单替换所述内部事件清单。若在远程节点上建立事件,则将收到InstanceCreation消息。它将给所述内部事件清单增加所述新的事件并请求WMI提供器对象向客户发出通知。当事件被修改(应答)或清除时使用所述方案。当事件在本机登录时,NT事件客户对象将调用所述对象,以便向外部节点发送实例建立消息。当事件被客户应答或清除时,WMI提供器对象将调用所述子系统向外部节点发送实例修改或删除消息。若收到LostMsgError或DuplicateMsgError消息,则不采取行动。
SES 40是SEP 52的WMI客户。被SEP 52递送的每一个事件都作为InstanceCreationEvent被SES 40接收。跟踪事件是一次事件,并简单地被SES 40向上传送。状态事件反映被监视的特定源的状态。这些状态在SES 40内部的报警和事件状态数据库中维护。SEP 52用要求的SES信息在从过滤器表取出时繁殖所接收的NT事件。所述信息包括事件cookie、源字符串、事件严重性、事件类别和类型以及事件是否ACKable(可应答)和当前ACKed(已应答)状态。
接收给定的源的新的与状态有关的事件时,新的状态必须超过(supercede)前一状态。收到与状态相关的事件时,SEP 52将查阅所述源的当前状态,并将产生__InstanceModificationEvent,将当前状态去激活。然后加上新的状态事件。
同步储存库提供器
SRP 56是SEP 52的基本组件。SEP 52和NSP 54提供登录的实例类的复合视图。SEP 52和NSP 54通过SRP 56实现的无连接可靠协议获得它们各自的储存库数据。
SRP 56是一个WMI外部事件提供器,所述WMI外部事件提供器实现可靠的互联网协议(IP)基于多址通信技术,用以维护分布式管理数据的同步WBEM储存库。SRP 56不需要动态实例提供器或实例客户来形成多个远程连接以便采集分布式数据的组合视图。SRP 56维护同步视图的状态,以确保数据改变事件的发送。使用无连接协议(UDP),它把网络/计算机outages对连接客户和服务器的影响减到最小。IP多址通信的使用减少对网络的影响并简化了配置。
SRP 56实现标准WMI外部事件和方法提供器接口。从同步提供器(例如,SEP 52或NSP 54)利用IWbemServices::ExecMethod[Async]()方法对SRP 56的所有方法进行调用。来自SRP 56外部事件数据的登录通过一个对IWbemServices::ExecNotificationQuery[Async]()的SRP实现的调用。SRP 56提供外部事件通知,而连接状态通过分别对IWbemObjectSink::Indicate()和IWbemObjectSink::SetStatus()的客户实现的回调更新SEP 52和NSP54。因为只使用标准WMI接口,(安装在全部Win 2K计算机),不要求定制程序库或代理服务器文档来实现或安装SRP 56。
为了减少配置复杂性和优化多种用途,对全部登录的客户(同步提供器)使用单一IP多址通信地址。接收的多址通信由WBEM类和源计算机激活目录路径过滤,然后提交给适当的同步提供器。每一个客户用SRP 56由WBEM类登录。每一个登录的类具有激活目录范围,也就是说可以个别配置。
SRP 56使用IP多址通信,以便既递送同步控制消息又递送储存库更新,减少通知发送的系统开销并保持网络的频带宽度。储存库同步是在同步节点之间通过传输控制协议/互联网协议(TCP/IP)流连接进行的。用TCP/IP流进行同步,减少了复杂性多址通信通信量的解读,并保证储存库数据的可靠的点到点发送。
同步提供器不同于标准实例提供器之处在于实例通知是提交给客户的。不是把实例通知直接提交给winmgmt业务的IWbemObjectSink,而是同步提供器连接到SRP 56并利用SRPSendinstanceNotification()方法提交实例通知。然后SRP通过多址通信把实例通知发送到所述配置同步组中的所有提供器。SRP56收到的实例通知通过外部事件经过winmgmt转送到同步提供器。同步提供器接收SRP外部事件,从所述外部事件取出所述实例事件,必要时将其应用于内部数据库,然后通过winmgmt把所述事件转送到连接的客户。
同步数据通过包含实例阵列的外部事件对象提交给同步提供器。对象阵列通过TCP/IP流从远程同步提供器,亦即当前正在同步的提供器提交给同步节点。同步提供器SRP客户必须把所述收到的排列与本机产生的实例合并,并通过把实例通知通过SRP 56发送给通知远程同步提供器。每个同步提供器必须确定如何最好地合并同步数据和本机储存库数据。
客户应用程序访问同步提供器(已经登录为SRP客户的提供器)就像它们为其它任何WBEM实例提供器那样。储存库的同步属性对同步提供器的客户是透明的。
SRP 56将配置有MMC特性页,调整指定的一组计算机的登录设置。SRP既要求IP多址通信配置又要求激活目录范围字符串配置。
通过默认,SRP 56将利用为HKLM\Software\Honeywell\FTE登录键找到的”心跳”测试包提供器58配置的IP多址通信(IPMC)地址。它提供IP多址通信组通过局域网路诊断消息(“心跳”测试包)健康的正面指标。SRP消息用的UDP接收端口是独特的(不与”心跳”测试包提供器58共享)。多址通信通信往往受路由器限制。若网址(site)通过路由器要求数据同步,则网络配置步骤可能必须允许通过所述路由器传送多址通信消息。
激活目录范围是逐个同步提供器(例如,SEP 52或NSP 54)配置的。每一个安装的客户将给HKLM\Software\Honeywell\SysMgmt\SRP\Clients键增加带有所支持的WMI类的名称的键。所述客户将给所述键增加名称和范围值。名称值将是REG_SZ值,包含对用户友好的名称,在配置接口中显示。范围值将是REG_MULT_SZ值,包含所述激活目录范围字符串。
SRP配置页将给用户呈现一个组合框,允许选择一个安装的SRP客户来配置。将利用SRP\Clients键控制下列出的每个客户类清单的名称值来繁殖所述组合框。一旦已经选取客户提供器,便用检查框项目显示激活目录树,使用户可以选择更新用的范围。用复选标记赋初值,以便与当前客户范围值匹配。
为了通过IP多址通信传送实例内容,必须读出IWbemClassObject的属性,并通过UDP IP把多址通信分组传到多址通信组,并在接收端重构。每个通知对象都经过检验,其内容写到SRP存储器中的一个流对象。实例属性的数量首先写入所述流,后面写入名称(BSTR)/数据(变体)对的全部实例属性。然后流把包装成IP多址通信UDP数据分组并发射。收到时,提取出属性数量并从所述流中读出名称/数据对。建立类实例并用收到的值繁殖,然后通过外部事件发送到winmgmt业务,以便发送到登录的客户(同步提供器)。变体不能包含引用数据。包含值的安全(safe)阵列的变体通过首先写变体类型,后面是包含于安全排列中的实例数量,然后是变体类型和全部包含元素的数据。
为了避开响应风暴(storms),在发送之前随机地延迟多址通信响应,最多延迟请求器规定的最长时间。若在本机响应发送之前由响应节点从另一个节点收到有效的响应,则发送将被取消。
参见图4,所示节点计算机34在一个配置中,它描写按照本发明的NT-AE通知和OPC-AE的通知的滤过作用。SRP 56通过多址通信链路70从系统20中的其它计算节点收到OPC-AE通知。SRP 56利用WMI业务36把这些通知送到SEP 52,假定SEP 52是题为要接收所述通知的一组的订户。SEP 52本身通过WMI业务36把OPC-AE通知送到SES 40。SES 40又把OPC-AE通知送到它的订户客户,诸如OPC-AE客户80。OPC-AE客户80(或SES40的其它OPC客户)产生的OPC-AE通知被SES 40接收并通过WMI业务36和SEP 52传送到SRP 56。然后SRP 56把这些OPC-AE通知包装成分组,分发到适当的订户组,对于其本地客户分发是通过SEP 40,而对于其它计算的节点的远程客户则通过多址通信链路70。
WMI业务36包括NT事件提供器82,它装有出现在节点计算机34之内的NT-AE的通知。NT事件提供器82使用WMI业务36来向SEP 52提供这些NT-AE通知。如上所述,不是所有NT-AE都发送到OPC客户,不像NT格式中的和OPC格式中的NT事件。按照本发明,设置过滤器表84,来过滤NT-AE通知,并将其换变为OPC-AE通知。
设置过滤器配置工具(系统事件过滤器Snap-in 86),以便使用户可以定义这些将换变为OPC-AE通知的NT-AE通知,并提供给订户客户。还为SEP 52使用而设置上述把NT-AE通知换变为OPC-AE通知的所必需的附加的信息,并且最好包含在过滤器表84之内。附加的信息包括这样的项目,即事件类型(简单的、跟踪的和状态的)、事件类别、事件源、事件严重性(1-1000)和源插入字符串以及所述事件是否可应答。
当被用户选取时,系统事件过滤器Snap-in 86显示节点计算机34上的全部登录消息表.选择所述消息表时,也就是说,用来登录要求的事件,全部包含消息显示在结果框上,更新来自预存过滤器表文件的附加的值。若文件不存在,则为所述要求事件建立一个新的文件。用户还选择要由SEP 52登录的消息,并输入把NT-AE通知转换为OPC-AE通知所需要的附加的信息。完成后,保存更新后的过滤器表。
第一实施例的逻辑设计方案
CAS 48提供以下业务,取决于服务器类型。以下是所支持的服务器清单:
·HCI管理服务器
·HCI管理状态服务器
·不被管理的透明重定向器服务器
·不被管理的OPC服务器
CAS 48提供HCI管理服务器用的以下业务:
·配置服务器的自动检测和监视
·节点启动时任选地自动启动所述服务器。
·WMI客户用的展示方法,以引发服务器启动、停止和检查点。
·向WMI客户展示被监视的服务器状态信息
CAS 48为不被管理的服务器提供以下业务:
·WMI客户开始和停止监视不被管理的服务器的用的展示方法。
·向WMI客户展示被监视的服务器状态信息
因为对组件配置的改变和报道的组件状态影响控制过程,所以CAS 48向由SEP 52挑拣出来用以向SES 40发送的窗口应用事件登录库登录事件。SES 40把窗口或NT-AE通知转换为要通过OPC-AE接口提交的OPC-AE通知。
以下方案描述CAS 48用的事件登录必要的条件和后来由SEP 52和SES 40执行的处理。
表1中提出的方案表示WMI客户进行组件方法调用。停止方法调用的用法只是要举例说明当客户调用HCI组件上的方法时执行的步骤。其它组件方法调用遵循相似的程序。
启动所述节点并且启动CAS 48,而HCI组件正在运行。
表1
事件    事件的描述
1       系统状态显示,用户右击适当的组件并选择停止菜单项目。
2       CAS 48接收所述请求,并引发HCI组件上的停止方法。
3       HCI组件完成所述停止操作。
4       CAS 48检测到状态的改变并创建一个组件修改事件,后者把状态改变通知所有连接的WMI客户。
5       CAS 48向所述应用事件登录库记录状态改变。
6       SEP 52检测到新的事件登录项,并在未确认的状态下向SRP 56添加一个状态事件。
向所述节点增加一个新的HCI管理组件。CAS 48自动地检测新的组件。启动所述节点并且启动CAS 48,如表2所示,利用HCI组件配置页增加一个新的HCI管理组件。
表2
事件    事件的描述
1       CAS 48从窗口2000接收更新,指示包含组件信息的登录键已经修改。
2       CAS 48检测到新的HCI管理组件并启动监视线程。
管理组件必须具有设置为是/真管理价值或将其忽略。例如,TRS设置为No/False(否/假)。
3       CAS 48创建组件建立事件,通知新的组件的所有连接的WMI客户。
4       监视线程等待组件启动,以便开始监视状态。
5       把一项写到本机应用事件登录库,指明建立新的组件。
6       SEP 40检测到所述事件并将其作为跟踪事件添加到系统事件储存库。
删除HCI管理组件的配置。CAS 48自动地检测新的组件。启动所述节点并且启动CAS 48,如表3所示,所述组件被停止,用户利用HCI组件配置页删除管理组件。
表3
事件    事件的描述
1       CAS 48从Windows 2000接收更新,指示包含组件信息的登录键已经修改。
2       CAS 48通过修改的登录键检测到所述HCI组件的删除。
3       CAS创建组件删除事件,通知连接WMI的客户所述组件已被删除。
4       CAS 48停止监视所述组件的线程。
5       CAS 48把事件写到应用事件登录,说明所述组件正在删除,指示所述组件现在处于未知状态。
6       SEP 52检测到新的事件登录项并把状态事件添加到所述系统事件储存库。被赋予″未知″的OPC服务器状态的事件由SES 40用来:
1)AutoAck(自动确认)利用与所述删除组件一样的源的任何显著的事件
2)具有和删除组件一样的源的状态返回到正常。
7       把一项写到本机应用事件登录库(事件num;2),指明组件已删除。
8       SEP 40检测到所述事件并将其作为跟踪事件添加到系统事件储存库。
HCI管理组件改变状态。CAS 48检出状态的改变并展示给连接的WMI客户。如表4所示,启动所述节点并且启动CAS 48,HCI组件A正在运行。
表4
事件    事件的描述
1       管理组件A改变状态(例如与TPN服务器有关的LCNP失败;这使状态改为报警)。
2       CAS 48检测到组件状态改变并通过WMI组件修改事件展示所述信息。
3       全部连接的WMI客户,诸如系统状态显示器46,接收WMI事件,指示状态改变
4       把组件状态改变写到应用事件登录。
5       SEP 52检测到新的事件登录项并在未确认的状态下向SRP 56添加状态事件。
HCI管理状态组件检测到监视装置状态的改变。CAS 48检测出状态的改变,并向连接的WMI客户展示。如表5所示,启动所述节点并且启动CAS 48,而HCI状态组件A正在运行。
表5
事件    事件的描述
1       状态组件A正在运行,并且被监视的装置报告失败状态(例如,HB提供器报告A链路遇险)。
2       CAS 48检测到装置状态改变并且通过WMI组件向连接的客户展示所述信息。
状态组件报告组件状态和装置状态两者。
在这种情况下只有装置的状态变化,而所述组件状态不变。
3      全部连接的WMI客户,诸如系统状态显示器46,接收WMI事件,指示状态改变。
4      所述装置状态改变写入应用事件登录。这些事件不会增加到系统事件用的过滤器表。完成这一点是为了避免来自多个计算机的复制事件。
5      SEP 52检测到新的事件登录项,并在未确认的状态下向系统事件储存库添加状态事件。
透明的重定向器服务器(TRS),一个不被管理的组件请求CAS 48以监视其状态。如表6所示,节点启动和CAS 48启动并且TRS正在启动。
表6
事件    事件的描述
1       TRS通过WMI连接到本地CAS 48,并且用其自己的名称和未知点调用监视组件方法。
2       CAS 48使所述组件名称独特并且创建线程来监视所述组件。
采用独特名称的理由是,可能会有多个同样名称/组件的实例。
独特的名称是组件的名称。
所述独特的名称还必须在重新引导系统之后再继续,并且TRS停止,以保证新的TRS实例不获得和已经停止的早期实例相同的名称。和现存事件一致时会造成困惑。
3       CAS 48通过所述方法调用把独特的组件名称返回TRS。
当请求停止监视所述组件时使用所述独特名称。
4       CAS 48创建组件建立事件,以便把新的被监视的组件通知连接WMI的客户。
5       CAS 48把一项写入应用事件登录库,指示所述组件正在被监视。
6       SEP 52检测到新的事件登录项,并给系统事件储存库添加跟踪事件。
透明的重定向器服务器(TRS)请求CAS 48,以停止监视它的状态。如表7所示,启动所述节点并且启动CAS 48,而停止被监视的TRS。
表7
事件    事件的描述
1       TRS通过WMI连接到本地CAS 48并用monitor组件方法返回的独特名称调用Unmonitor组件方法。
2       CAS 48停止组件monitor线程。
3       CAS 48为正在被删除的组件把一个事件写到应用事件登录,指示所述组件现在处于未知状态。
4       SEP 52检测到新的事件登录入口并把一个状态事件添加到所述系统事件储存库。所述事件由SES 40用来去激活状态数据库中的OPC-AE事件。
5       CAS 48创建一个组件删除事件,以通知连接WMI的客户所述组件不再被监视。
6       CAS 48把一个入口写入应用事件登录,指示所述组件不再监视。
7       SEP 52检测到新的事件登录入口,并添加一个跟踪事件系统事件储存库。
“心跳”测试包提供器58定期地多址通信一个”心跳”测试包消息,表明节点健康,如表8所示,启动所述节点,启动”心跳”测试包提供器58。
表8
事件    事件的描述
1       “心跳”测试包提供器58启动多址通信IsAlive消息。
2       监视同一多址通信地址的其它”心跳”测试包提供器58接收所述IsAlive多址通信消息,并向alive节点清单增加所述节点。
3       在它们的本地WMI”心跳”测试包提供器上发生WMI实例建立事件时,警告WMI客户注意新的节点。
如表9所描绘的,所述节点失效或关闭。
表9
事件    事件的描述
1       所述节点失效并停止发送IsAlive”心跳”测试包消息。
2       监视同一多址通信地址的其它”心跳”测试包提供器58检测到在向失效的节点通信时丢失。
3       “心跳”测试包提供器58反映通过删除向所述节点的引用反映所述节点的失效状态。
4       通过WMI删除实例警告WMI客户注意所述失效事实。
5       “心跳”测试包提供器58向所述应用事件登录登录一个事件。
6       SEP 52检测到事件检查过滤器表并有条件地向所述同步储存库登录事件。
注意:SES节点将是”心跳”测试包提供器58用的带有过滤器的唯一节点。这避免节点失效的多个拷贝。
SEP 52是NT-AE同步储存库。可以通过所述系统、CCA应用程序或第三方应用程序产生NT-AE。它利用所述SRP 56来维护所有节点上的系统事件的一致视图。它还利用过滤器表84来控制变为OPC-AE通知的NT-AE通知。
过滤器表84提供一个将增加到SRP 56的所述事件的包含清单。任何窗口2000事件都可以包含。所有事件是定制的,以便如表10所描绘的,标识诸如事件类型(简单的、跟踪的、条件的)、严重性(1-1000)并源插入字符串索引号等SES 40需要的信息。
表10
事件    事件的描述
1       用户启动SEP过滤器Snap-in 86。Snap-in 86显示计算机的所有登录的消息表。
2       用户选择用以登录所述要求事件的消息表。
Snap-in 86显示结果框中的所有包含的消息,并从预存的过滤器表文件更新附加的值。若文件不存在,则当保存所述改变时建立它。
3       用户选择应该通过SEP 52登录的消息,并输入把所述事件转换为0PC事件所需要的附加信息。
4       用户保存所述过滤器表84。
5       过滤器表84对所有计算机都是分布式的(手工的或通过Win2K离线档案夹),是登录所述事件所需要的。
6       用户停止并重新起动SEP 52业务。
HCI名称业务建造和维护HCI/OPC服务器别名数据库。客户应用程序使用所述名称业务来找到CLSID、ProgiD和作为所述服务器的主机的节点的名称。对所述名称业务的问集成在HCI工具包API中,类似于GetComponentlnfo()来提供与以前开发的HCI客户应用程序的反向兼容性。
在所有被管理的节点上维护别名同步数据库。每一个节点都被赋予决定同步数据库范围的多址通信组。启动所述节点,而窗口业务控制管理器(SCM)启动HCI名称业务。适当配置所述节点并将其赋予多址通信组。如表11所描绘的,所述组中的其它节点都已经运行。
表11
事件    事件的描述
1       用SRP 56进行名称业务登录。
2       名称业务向SRP 56发送一个请求报文来请求同步源。
3       一个远程节点上的SRP 56响应该请求。
4       名称业务通过形成到所述远程名称业务提供器的WMI连接,与相应节点同步。所述名称业务列举所述源节点名称业务的所有实例,并初始化所述本地储存库,主文件登录项除外。
5       名称业务把与所述激活目录想联系的节点TPSDomain与所述节点启动的最后时刻所记录加以比较。若无激活目录可用,则使用最后记录的TPSDomain。
若记录了所述TPSDomain,并检测出一个改变,则跳到描述当一个节点移动到另一个TPSDomain时发生的情况的方案。
所述TPSDomain包括在所述节点的激活目录显示其特点的名称内。所述节点的显示其特点的名称以UNC格式记录在所述登录库中。
6       名称业务查询本地登录库,查找本地登录的组件,并检查重名。
1.若找不到,则把所述组件增加到同步名称业务储存库。
2.若找到并且所有信息都相同,则不要求进一步的操作。
3.若找到并且是Local Only(仅本机用),则它代替所述重复的项目,并且不进行同步。
4.若找到并且它是一个域组件,则把一个重复组件别名事件写到应用程序登录库。所述重复事件配置入系统事件过滤器表84,因而它将显示在系统状态显示器46上。
7       名称业务读取HCI主文件并检查重名。
1.若找不到,则把所述组件增加到本地名称业务储存库。
2.若找到并且所有信息都相同,则不要求进一步的操作。
3.若找到并且信息不相同,则把一个重复组件别名事件写到应用程序登录库。所述重复事件配置入系统事件过滤器表84,因而它将显示在系统状态显示器46上。
以下方案不提供有关OPC客户到SES 40的连接的细节。反之,所述方案试图提供关于WMI到SES 40人机对话的背景材料。
SES 40预定SEP 52实例建立和修改事件。SEP 52是一个同步储存库,利用SRP 56来保持它的系统事件同步储存库与指定激活目录范围内所有计算机的同步。如表12所描绘的,SES40负责向分配用的GOPC-AE对象提交SEP事件。
表12
事件    事件的描述
1       SES 40启动和完成所有要求的初始化,包括包含所述状态数据库的GOPC-AE对象的建立。
2       SES 40通过winmgmt(WMI)服务器连接到SEP 52。
3       SES40为实例建立和修改事件进行登录。
4       SES 40列举所有现存事件实例并通过所述OPC-AE接口更新状态数据库。SES 40预定SEP 52实例建立和修改事件。
SEP 52是一个同步储存库,利用SRP 56来保持它的系统事件同步储存库与指定的激活目录范围内所有计算机的同步。所述范围由登录库设置用UNC格式激活目录路径定义。通往TPS域的路径表明,所有计算机与所述TPS域组织单元(OU)同步。
通往所述域水平的路径会同步所述域内的所有SEP,而不管TPS域OU。所述设置是通过可以从系统状态显示器46或本地配置实用程序配置页发出。
用户发出系统状态显示器46。所有计算机都应该是在线的,因为必须如表13所描绘的,执行登录库配置。
表13
事件    事件的描述
1       用户右击将会成为系统状态显示范围框内SES HCI组件主机并在所述环境菜单中选择HCI组件项目的节点。
2       显示HCI组件配置页。
*3      选择所述组件的别名。.
4       恢复HCI组件配置页中的字段。
5       用户改变HCI组件特定信息的字段(检查点文件位置、OPC方法访问保障代理服务器文档)。
6       用户启用DSS特定的配置页,并改变所述多址通信范围字段。顶层同步将把″*″路径用作IP多址通信组内所有节点同步所得的的范围。
7       用户选择应用。
8       数据写入关于主宰所述组件的节点的登录库。
在将要主宰所述组件的节点上,自动地建立代理服务器文档。
现将如图2-4所示,针对利用相同节点带有附加的特征的计算机34的系统20描述第二推荐实施例。
过滤器配置工具
系统事件过滤器Snap-in 86包括系统状态显示器46和用于此目的的输入装置,诸如键盘和/或鼠标(未示出),用于包含把NT-AE通知转换为OPC-AE通知用的附加信息的NT-AE用户项目及其特性,例如,所述特性可以包括事件类型(状态,简单的或跟踪的)、事件源(用正文和NT事件登录插入字符串识别)、事件严重性(预定值或登录值)、事件类别(注意表26中的示例性值)、事件状态(注意表26中的示例性值)、事件子状态(根据事件状态)和事件属性(作为由事件类别定义的)。用户使用系统事件过滤器Snap-in 86来把NT事件输入到过滤器表84中,将传送NT事件的通知以便转换为OPC-AE通知。
参见图6-10,系统事件过滤器Snap-in 86在系统状态显示器46把指定事件类型(图6)、事件类别(图7)、事件状态(图8)、事件子状态(图9)和事件属性(图10)用的一系列选择框呈现给用户。
系统事件服务器(SES)的逻辑设计
再一次参见图4,SES 40是一个被HCI管理的组件,把NT-AE通知陈列为OPC-AE通知。SES 40陈列OPC-AE顺从接口,任何OPC-AE客户可以使用所述OPC-AE顺从接口来采集系统事件。SES 40利用SEP 52来从预定的一套计算机采集事件。SEP 52根据过滤器文件接收登录并过滤这些通知的NT-AE通知。增强通过过滤器的NT-AE通知,使其具有产生OPC-AE通知所要求的附加质量。SEP 52维护与事件有关的激活状态的映射,并提供superceded状态事件的自动的去激活。SES 40负责把事件数据包装为OPC-AE通知并用以维护本地状态数据库,用来跟踪与状态有关的OPC-AE的状态。
在启动过程中,SEP 52将扫描所有从节点启动以来或上一次sEP52停止以来登录的所有事件,以便初始化本地状态数据库,来包括有效的条件状态。然后SEP 52将开始处理来自Microsoft窗口NTEventLog提供器的改变通知。
事件扩张
系统事件过滤器Snap-in 86用来定义建立OPC-AE通知时扩张NT登录事件信息所要求的附加的数据。系统事件过滤器Snap-in 86将配置OPC-AE类型、所述事件是否为isACKable(可应答)以及所述项目是否与状态有关,把所述状态指定给所述事件。
若一个事件定义为与状态有关的事件类型,则所述事件可以是单稳态事件(非激活)或希望相应的返回正常事件(激活)的条件。识别为ACTIVE(激活)的事件必须具有一个定义为去激活所述条件的相关事件。
给每一个事件类型指定一个OPC-AE严重性,因为窗口事件严重性不一定直接转换为要求的OPC-AE严重性。  系统事件过滤器Snap-in 86将用来指定一个OPC-AE严重性值。若指定零(0)的严重性,则指定给原来的NT-AE的事件严重性将转换为预先指定的OPC-AE严重性值。所述SES不利用子状态。条件子状态将是条件名称的拷贝。
事件维护
SES 40预定由SEP 52产生的事件。SEP 52负责用SRP 56维护在所有节点上都同步的与状态有关的事件的状态。所有与状态有关的事件和它们的状态的改变,包括确认,对于包含在配置的激活目录范围内所有SEP都是全局的。所有新的状态和现存状态的改变都将产生OPCConditionEventNotifications。被包含的ChangeMask将反映状态已经改变的值。当状态被应答时,SEP 52将产生跟踪事件。
新的与状态有关的事件由SES 40从SEP 52接收作为WMIInstanceCreationEvents。确认和激活状态中的改变反映在WMIInstanceModificationEvents中。当一个状态既被应答又被清除时,将提交WMI删除事件。简单事件和跟踪事件都作为WMI的ExtrinsicEvents提交,并且不包含在任何储存库中。
对于简单事件和跟踪事件,没有同步(对所有侦听的节点在多址通信递送以外),并且不维护状态。这些事件将只由在它们的递送的时候连接的客户接收。SEP TPS SysEvt类用来维护与状态有关的事件。TPS SysEvt Ext类用来提交简单事件和跟踪事件。
事件恢复
在SEP 52储存库中维护所有状态事件。使SEP 52储存库在它的配置范围之内跨越所有节点同步。任何失去它的网络连接或失败的节点都将在状态被修正时用一个同步视图刷新它的视图。状态事件由产生所述事件的节点维护。在同步的过程中被识别为来源于与当前本地状态不匹配的本地节点的状态事件将被SEP 52去激活。
简单事件和跟踪事件不被同步并且不是可复原的。条件状态维护是由所述登录的节点执行的。然后状态与所有其它节点同步。失去节点的任何结合都将影响所述事件视图的有效性。
条件时间戳是以条件激活时间为依据的并且由于恢复刷新而改变。
浏览
SES40支持分层次浏览。地区由包含在配置SEP 52范围之内的激活目录对象定义。层次区域文法与激活目录取名习惯处于相反的顺序并且必须互换位置。区域名称格式将是:\\RootArea\area1\area2,其中RootArea,area1和area2是激活目录域或组织单元对象,并且area1包含area2,而RootArea包含area1。
SES 40将在定义在SEP 52的范围之内的激活目录水平开始,在激活目录树行走。将维护所述结构的一个内部表述,以便支持浏览并且检测激活目录配置的改变。SES 40源一般定义在SEP 52的激活目录范围的地区内的计算机和组件。源于计算机但是已经没有特定项目来报告的事件将使用登录计算机的名称作为源。驻留于计算机内的关于事件的特定项目使用源名称格式:计算机.组件(例如.computer1.PKSSERVER01)。包含的计算机将作为源增加到每一个区域。其它源(例如,采用源名称习惯:源.组件的被管理组件)将被动态地增加,作为激活事件接收。
使能/禁止
关于一个SES的使能或禁止事件将不影响其它SES,不论它们是处于相同的还是处于不同的范围。若使用重定向管理器(RDM),则RDM将使能或禁止冗余的SES连接的地区和源,维护同步视图。使能/禁止对于连接到相同SES的所有客户都是全局的。
SES子系统
SES40利用HCIRuntime(运行期程序)以提供OPC兼容的报警和事件(AE)接口。HCI Runtime和GOPCAE对象执行所有OPC客户通信和状态数据库维护。装置特定服务器功能是在SES装置特定对象(DSSObject)实现的。所述对象将创建事件管理对象的单一的实例,它将从SEP 52检索事件并把SEP 52事件通知转送到GOPC-AE。另外,单一的对象将维护激活目录配置的视图,用以定义服务器地区和包含的源。
SES中的数据库
将维护以下的查阅映射:
                表14 SES内部映射
层次区域和源映射
                代表激活目录容器(地区)的对象层次映射和
                所包含的事件源。所述映射将用于区域中的
                区域和区域中的源。它还将在完成激活目录
                的定期扫描以识别激活目录层次中的改变时
                使用。
OPC事件cookie
到WMI的映射     当OPC客户应答事件时用以查阅WMI实例签
                名事件引导。
维护以下性能计数器来监视SES 40的操作。
            表15-SES性能计数器
计数器              类型          描述
连接的客户          RAWCOUNT      当前客户连接数目(非备用的
                                  DDssObject实例)
登录的事件          RAWCOUNT      服务器启动以来处理的事件数目
每秒登录的事件      COUNTER       上一秒处理的事件数目(从登录
                                  的事件推算)
登录的状态事件      RAWCOUNT      服务器启动以来处理的ACKable
                                  事件数目
登录的状态事件      COUNTER       上一秒处理的ACKable事件数目
                                  (从登录的ACKable事件推算)
登录的简单事件      RAWCOUNT      接收的简单事件
每秒登录的简单事件  COUNTER       上一秒接收的简单事件数目(从
                                  登录的简单事件推算)
登录的跟踪事件      RAWCOUNT      上一秒接收的跟踪事件数目
每秒登录的跟踪事件  COUNTER    上一秒处理的跟踪事件数目
                               (从登录的跟踪事件推算)
系统事件服务器(SES)的接口
参见图5,SES 40向OPC-AE客户80陈列多个接口90。在内部,SES 40实现一个装置特定服务器对象,表示为通过标准HCI Runtime定义的接口与HCI Runtime组件92通信的DSS对象94。DSS对象94提供所有服务器特定实现。
系统事件服务器DSS对象实现IHciDeviceSpecific-Common,IHciDeviceSpecific-AE,IHciDeviceSpecific-Security,IHciDeviceSpecificCounters和IHciDevice接口。
所述HCI Runtime IHciSink_Common接口用来通知区域和源可用性改变的客户(通过HCI Runtime)。
所述IHciSink_AE GOPC_AE接口用来通知新的和修改事件的客户。定期(4秒)”心跳”测试包通知发送到所述接口以验证所述GOPC_AE/SES连接状态。当所述DSS连接无效(丢失”心跳”测试包或访问差错)时,SES 40登录事件(在过滤器表中识别为DEVCOMMERROR条件),识别DSS通信差错,并且反映由CAS 48通过IHciDeviCe::GetDeviceStatus()取出的状态中的问题。所述GOPC_AEIHciSink_AE接口上的”心跳”测试包将停止,以此识别对GOPC_AE对象的丢失。当连接恢复原状时,SES 40登录另一个事件(在过滤器表84识别为非激活DEVCOMMERROR状态)并更新装置状态。“心跳”测试包将恢复到由GOPC_AE对SES DSS对象Refresh()方法触发一个调用的GOPC_AE。SES DSS对象本身将从恢复的SEP连接列举所有实例,并将用bRefresh标志置位把每一个实例递送到GOPC_AE阱接口。SESDSS对象94实现任选的IHciDevice接口,它向所述组件经营业务(CAS)陈列GetDeviceStatus()方法。SES 40实现所述接口来反映事件通知连接的状态。
将返回一个失效装置状态,以表明所述SEP连接并未建立或当前是断开的。类似地,SEP 52将通过差错通知向SRP直至SES 40反映它的连接中的差错。由GetDeviceStatus()返回的装置信息字段将包含字符串,描述相关的连接问题。
SES DSS对象94还实现IHciDeviceSpecificCounters接口,以支持DSS性能计数器。
服务器事件登录是利用HsiEventLog API执行的。SES 40的HCI组件配置值将利用ITpsRegistry接口取出。
第二实施例的逻辑设计方案
被管理组件改变状态为FAILED(失效)状态。如表16所描绘的,必须给OPC客户产生一个状态事件。
表16-产生状态事件-新的激活报警
事件    事件的描述
1       被管理组件进入FAILED(失效)状态。
2       CAS 48检测到状态改变并登录一个窗口事件。
3       SEP 52业务得到所述事件的通知并检验它的过滤器表。
4       在过滤器表中组件状态改变事件被识别为激活状态有关事件。
5       建立一个TPS_SysEvt类实例并把过滤器表信息设置在事件对象内。
6       SEP 52检查它的源到状态事件的映射,找当前激活的状态事件:没有找到。
7       SEP 52创建一个__InstanceCreationEvent并插入TPS_SysEvt实例。它把InstanceCreationEvent送到SRP 56。
8       SRP 56把InstanceCreationEvent分发(多址通信)到所有SEP 52。
9       A11 SEP都收到所述事件并通知所连接的客户所述收到的事件。
10      SES 40收到所述事件通知。
11      所述事件信息转换为OPC-AE事件通知,并发送到预定的OPC-AE客户。
被管理组件先前已经输入WARNING(报警)状态。这产生激活状态报警。所述组件现在过渡到FAILED状态,生成新的激活状态。如表17所描绘的,以前的状态不再激活。
表17-产生状态事件-存在激活报警
事件    事件的描述
1       被管理组件从WARNING(报警)状态转入失效状态。
2       CAS 48检测到状态改变并登录一个窗口事件。
3       SEP 52业务得到所述事件的通知并检验它的过滤器表。
4       在过滤器表中组件状态改变事件被识别为激活状态有关事件。
5       建立ATPS_SysEvt类对象并设置过滤器表信息。(EventB)
6       SEP 52检查它的源到状态事件的映射,找一个当前激活的状态事件;找到WARNING状态报警。(EventA)
7       (EventA)TPS_SysEvt对象包含WARNING状态报警(在步骤6找到)设置为INACTIVE(非激活)。
8       (EventA)SEP 52建立InstanceModificationEvent并插入被去激活的WARNING状态事件TPS_SysEvt对象。
9       (EventA)sEP 52向SRP 56发出修改事件,所述事件分发到所有SEP。
10      (EventA)所有SEP 52收到所述事件并把所述收到的事件通知所连接的客户(SES)。
11      (EventA)SES 40收到所述被去激活WARNING状态事件通知。
12    (EventA)被去激活事件信息转换为OPPC-AE事件通知,并发送到预定的OPC客户
13    (EventB)SEP 52创建一个Ins tanceCreat ionEvent并插入新的FAILED状态事件TPS_SysEvt对象。
14    (EventB)SEP 52向SRP 56发出InstanceCreat ionEvent,把所述事件分发给所有SEP 52。
15    (EventB)所有SEP 52收到所述事件并把所述收到的事件通知所连接的客户(SES)。
16    (EventB)SES 40收到被去激活WARNING状态事件通知。
17    (EventB)把所述事件信息转换为OPC-AEevent通知并发送给预定的OPC客户。
重新起动失效的被管理组件(存在激活事件),并最后过渡到IDLE(空闲)状态,如表18所描绘的,在所述系统事件过滤器表中标识为返回正常状态。
表18-产生状态事件未确认事件上返回正常
事件    事件的描述
1       被管理组件从WARNING(报警)状态转入IDLE(无效)状态。
2       CAS 48检测到状态改变并登录窗口事件。
3       SEP 52业务得到所述事件的通知并检验它的过滤器表。
4       在过滤器表中组件状态改变事件被识别为非激活Unacknowledgeable(不可应答)状态有关事件。
5       SEP 52为一个当前激活的状态事件,检查它的源到状态事件的映射;找到所述FAILED(失效)的状态报警。
6       把包含所述FAILED状态报警的TPS_SysEvt对象设置为INACTIVE(非激活)。
7       SEP 52建立InstanceModificationEvent并插入所述被去激活的FAILED状态事件TPS_SysEvt对象。
8       SEP 52向SRP 56发出修改事件,把所述事件分发给所有SEP52。
9       所有SEP 52收到所述事件并把所述收到的事件通知所连接的客户(SES)。
10      SES 40收到所述被去激活WARNING状态事件通知。
11      把所述被去激活事件信息转换为OPC-AE事件通知并发送给预定的OPC客户。
事件可以从下面系统状态显示器46或另一个SES(通过SEP)或从上面通过HCI Runtime接口应答。在所述方案中,通过SEP 52产生所述确认。操作是相同的,不管确认是否来自另一个SES节点所述系统管理显示器。
表19-从SEP应答状态事件-事件是激活的
事件    事件的描述
1       用户从系统状态显示器ACK(应答)一个事件。系统状态显示器46引发SEP 52上的ACK方法。
2       SEP 52查看它的储存库中的被引用的TPS_SysEvt对象并把ACK后的特性设置为TRUE。把ModificationSource特性设置为本地计算机名称。
3       SEP 52为被引用的事件对象产生InstanceModificationEvent并插入修改后的TPS_SysEvt对象。
4       SEP 52登录一个解释为跟踪事件的NT事件,以跟踪所述状态确认。
5       SEP 52向SRP 56发出修改事件,把所述事件分发给所有SEP52。
6       所有SEP 52收到所述事件并把所述收到的事件通知所连接的客户。
7       SES 40收到所述事件修改通知。
8       把所述被应答的事件信息转换为OPC-AE事件通知并发送给预定的OPC客户。
如表20所描绘的,OPC客户应答激活状态事件。
表20-从OPC客户应答状态事件-事件是激活的
事件    事件的描述
1       用户从OPC客户应答事件。
2       SES 40用cookie查看WMI事件签名。
3       SES 40为在步骤2取出的所述事件签名引发所述SEP ACK()方法。
4       SEP 52改变所述指定事件ACK和ModificationSource属性。
5       SEP 52产生InstanceModificationEvent,与修改后的TPS_SysEvt繁殖它并将其发送到SRP 56。
6       SRP 56把所述修改事件发送到所有SEP 52。
7       SEP 52收到所述改变通知,更新本地储存库并把所述改变转送到SES 40。
8       SES 40收到所述改变通知。
9       因为所述ACK状态已经修改,所以没有改变并且不给OPC产生事件。
注意:从冗余的SES透视图查看,所述ACK状态是不同的,并对冗余的服务器上的所述OPC客户和连接到所述冗余的服务器的任何客户产生状态改变。
如表21所描绘的,通过所述SEP WMI接口(例如,系统状态显示器46)应答非激活状态事件。从所述事件储存库删除所述非激活的应答了的事件。
表21-从所述SEP应答状态事件-事件是非激活的
事件    事件的描述
1       用户从系统状态显示器ACK(应答)事件。系统状态显示器46引发SEP 52上的ACK方法。
2       SEP 52查看被引用的TPS_SysEvt对象,并注意,所述事件是非激活的。把所述ACKed特性设置为TRUE。ModificationSource特性设置为所述本地计算机名称。
3       因为所述事件现在既是非激活又是应答了的,所以SEP 52产生__InstanceDeletionEvent并插入所述修改后的TPS_SysEvt对象。
4       SEP 52登录解释为跟踪事件的NT事件,以跟踪所述状态确认。
5       SEP 52向SRP 56发出所述事件,把所述事件分发给所有SEP52。
6       所有SEP 52都收到所述事件并把所述收到的事件通知所连接的客户(SES)。从所述SEP事件储存库删除所述TPS_SysEvt对象。
7       SES 40收到所述事件删除通知。
8       把所述被应答的事件信息转换为OPC-AE事件通知并发送给预定的OPC客户。
OPC客户应答非激活状态事件。如表22所描绘的,从所述事件储存库删除所述非激活的、应答了的事件。
表22-从OPC客户应答状态事件,事件是非激活的
事件    事件的描述
1       用户从一个OPC客户应答一个事件。
2       SES 40用cookie查看WMI事件签名。
3       SES40利用上述的取出的事件签名引发所述SEP的ACK()方法。
4       SEP 52查看被引用的TPS_SysEvt对象,并注意,所述事件是非激活的。把所述ACKed特性设置为TRUE。ModificationSource特性设置为所述本地计算机名称。
5       所述事件现在既是非激活又是应答了的,所以SEP 52产生__InstanceDeletionEvent并插入修改后的TPS_SysEvt对象。
6       SEP 52登录一个解释为跟踪事件的NT事件,以跟踪所述状态确认。
7       SEP 52向SRP 56发出所述事件,把所述事件分发给所有SEP52。
8       所有SEP 52都收到所述事件并把收到的事件通知连接的客户(SES)。the SEP 52从它们的储存库删除TPSSysEvt对象。
9       SES 40收到所述事件删除通知。
10      因为所述状态已经删除,所以不给所述OPC客户产生事件。
注意:从冗余的SES透视图看,所述ACK状态是不同的,并给冗余服务器上的OPC客户和连接到所述冗余的服务器的任何客户产生状态改变。
重新启动FAILED(失效)的被管理组件,并最后过渡到IDLE(空闲)状态,后者在系统事件过滤器表中被识别为返回到正常状态事件,如表23所描绘的。
表23-产生状态事件,应答事件返回到正常
事件    事件的描述
1       被管理组件转入IDLE(空闲)状态。
2       CAS 48检测到状态改变并登录一个窗口事件。
3       SEP 52业务得到所述事件的通知并检验它的过滤器表。
4       在过滤器表中组件状态改变事件被识别为Inactive(非激活)Unacknowledgeable(不可应答)状态有关事件。
5       SEP 52为当前激活的状态事件,检查它的源到状态事件的映射;找到所述FAILED(失效)的状态报警。
6       把包含FAILED状态报警的TPS_SysEvt对象设置为INACTIVE(非激活)。
7       因为所述事件现在既是非激活又是应答了的,所以SEP 52产生InstanceDeletionEvent并插入所述修改后的TPS_SysEvt对象。
8       SEP 52登录解释为跟踪事件的NT事件,以跟踪所述状态确认。
9       SEP 52向SRP 56发出所述事件,后者把所述事件分发给所有SEP 52。
10      所有SEP 52都收到所述事件并把收到的事件通知所连接的客户(SES)。SEP 52从它们的储存库删除TPS_SysEvt对象。
11      SES 40收到所述事件删除通知。
12      把所述被应答的事件信息转换为OPC-AE事件通知,并发送给预定的OPC客户。
如表24所描绘的,OPC客户创建所述SES实例,并预定事件通知。
表24-用于SES事件的OPC客户签名
事件    事件的描述
1       OPC客户创建SES 40的out-of-process实例。
2       建立SES 40服务器对象并把所述接口排列到out-of-process客户。
3       所述OPC客户创建进程内IOPCEventSink对象。
4       所述OPC客户从对lOPCEventServer::CreateEventSubscription()的调用取得IConnectionPointContainer接口。
5    所述OPC客户通过客户IOPCEventSink对象的未知点,调用SES 40的IconnectionPointContiner接口上的Advise()。
6    从CreateEventSubscription()返回IOPCEventSubscriptionMgt2接口用的OPC客户Qls。
7    所述OPC客户调用IOPCEventSubscriptionMgt2::SetKeepAlive()来设置回调接口在”心跳”测试包的保持存活(keep-alive)的时间间隔。
8    SES 40利用所述lOPCEventSink::OnEvent()方法把新的事件发送到所述客户。若当所述keep-alive大致要过去时没有产生事件,将产生一个keep-alive。
OPC客户创建SES 40实例,并预定事件通知。如表25所描绘的,丢失回调连接。
表25-OPC客户丢失与SES的连接
事件    事件的描述
1       OPC客户预定如表27的SES事件,OPC客户为SES事件签名。
2       网络或其它通信异常地打破到所连接的OPC客户的回调连接。
3       在特定的keep-alive周期已经过去之前OPC客户没有收到事件。
4       所述OPC客户Unadvise()所述连接连接点(在实例中,问题的确是回调问题)。
5       若Unadvise成功,则所述客户可以选择再预定事件。
6       若Unadvise失败,则所述客户应释放他的SES引用,并再一次完成完全的再连接。
注意:在大部分情况下,对于任何回调问题,这是推荐的操作。释放和再实例化所述SES的一个新的实例将保证从它的超高速缓存存储器把老接口DCOM存入硬盘。
鲁棒性和安全性
HCI Runtime通过OPC-AE回调实现”心跳”测试包。客户使用所述”心跳”测试包来检验回调连接是否在运行。SES 40利用重定向管理器(RDM)支持冗余操作。SES 40本身不知道它是在冗余的配置下运行的。用户的责任是配置RDM来访问冗余的SES 40服务器并保证所述配置在两个SES 40实例之间是兼容的。当一个SES服务器或所述节点时,为RDM把它正在运行、失效、失效时间写入文档。因为事件储存库的实际的状态是在所有节点上的同步的SEP 52储存库中维护的,所以来自直接站的SES视图将是相同的。
通过WMI到所述系统事件提供器的连接由通用模数IstClnt.dll维护。丢失连接、试图再连接的通知和恢复连接的通知都由nstClnt.dll内实现的线程处理。一旦所述服务器由于任何原因失效,它将在客户试图引用它时自动地重新启动。
系统事件过滤器Snap-in
系统事件过滤器Snap-in 86工具是一个Microsoft管理控制台Snap-in,它提供定义与OPC报警和事件的相关的附加的事件属性的机制。所述系统事件过滤器Snap-in 86提供一种在窗口登录库登录时选择Windows NT事件种类文件的机制。事件源从与消息种类相关的清单选取并显示包含在所述种类中的事件清单。Windows NT事件作为OPC事件的配置是通过配置”Wizard(向导)″执行的。
OPC-AE属性由与下表26事件类型、类别和状态名一致的配置向导指定。
表26-事件类型、类别和状态名
事件      事件类别    状态名称               描述
类型      /类别ID
有关状态                            与状态有关的事件是可以
                                    指定给激活状态的可应答
                                    事件。若把激活状态指定
                                    给事件,则必须识别另一
                                    个当所述源返回正常时登
                                    录的事件。
          系统报警/   SYSERROR      ACKable,INACTIVE系统差
          0x3003                    错对特定组件、节点或网
                                    络不可隔离。源是发出所
                                    述状态的节点的名称。
                      NODEERROR     ACKable,INACTIVE计算机
                                    平台(节点)差错。
                                    源是节点名称。
                      NETERROR      ACKable,ACTIVE/INACTIVE
                                    网络差错。源是用发出所
                                    述状态的节点的名称定义
                                    的网络或网络(段)名称。
                      NETREDERROR   ACKable,ACTIVE/INACTIVE
                                    冗余对的一个链路的问题
                                    。源是用发出状态的节点
                                    的名称定义的链路名称。
                      MANCOMPERROR   ACKable,ACTIVE被管理
                                     组件差错。源是用节点名
                                     称定义的组件名称或别名
                                     。组件名称用的插入字符
                                     串是强制性的。为了去激
                                     活,登录用相同的状态名
                                     称登录,但设置为
                                     NOTACKable和INACTIVE。
                      SYSCOMPERROR   ACKable,INACTIVE类属
                                     系统组件差错。源是用节
                                     点名称限定的组件名称。
                                     组件名称用的插入字符串
                                     是强制性的。
                      任何有效的状态 NOT ACKable,INACTIVE
                      名称设置为NOT  无差错/返回正常状态。
                      ACKABLE和      所述状态不直接作为OPC
                      INACTIVE       事件传送,但用来改变所
                                     述命名的状态事件为非
                                     激活。SEP用相同源和
                                     状态名称搜索储存库,
                                     寻找激活状态。若找到,
                                     则用非激活状态更新所
                                     述事件。若找不到激活
                                     状态,则不产生OPC事件。
         OPC_SERVER_DEVCOMMERROR ACKable,ACTIVE,所述OPC
         ERROR/                  服务器被禁止与其相关的
         0x3004                  装置通信。源是用节点名
                                 称限定的服务器名称或别
                                 名。还必须指定相应的
                                 通信恢复状态。
简单的                           NOT ACKable,INACTIVE简
                                 单事件是可以写入历史但
                                 不在事件观看器上显示的
                                 单次事件。
         装置失效
         /0x1001
         系统.消息/
         0x1003
跟踪的                           NOT ACKable,INACTIVE
                                 跟踪事件是不保存在系统
                                 事件储存库的单次事件。
         过程改变
         /0x2001                 用交互用户或控制应用程
                                 序修改过程参数。这包括
                                 SEP登录状态跟踪事件。
         系统改变
         /0x2002                 配置改变以外的系统改变,
                                 例如操作员登录或注销。
     系统配置
     /0x2003                     系统配置的改变,例如给TPS
                                 域加节点(当检测到AD改变
                                 时由SES登录)。
OPC事件严重性必须指定为每一个事件类型,因为Windows或Windows NT事件严重性不一定直接转换为要求的OPC事件严重性。表27呈现OPC严重性范围和等效的CCA/TPS优先权(用于引用目的)。若在所述过滤器表中指定0的严重性,则指定为原来的NT事件的事件严重性将转换为预先指定的OPC严重性值。
表27-OPC事件严重性转换
指定的严重性值       转化             同等的CCA/TPS优先权
0                    登录NT事件时     N/A(不必关心)
                     (下面)指定事件
                     严重性使用
200(OP范围1-400)     成功或信息的     Info(信息)(一般不显示
                                      但可以记入流水账)
500(OPC范围401-600)  报警             Low(低)
700(OPC范围601-800)  差错             High(高)
900(OPC范围801-1000)                  紧急或意外
系统事件过滤器中数据库
所述系统事件过滤器存储在过滤器目录内的XML文档中。
尽管我们已经表示和描述了按照我们的发明的一些实施例,但是将会清楚地理解,许多改变对本专业技术人员是显而易见的。因此我们不想限于所表示和描述的这些细节,而是想要显示落入后附的权利要求书的范围内的所有改变和修改。

Claims (56)

1.一种向OPC客户通知OPC报警和事件(OPC-AE)以及NT报警和事件(NT-AE)的方法,所述方法包括:
把NT-AE的NT-AE通知转换为OPC-AE通知;以及
把所述OPC-AE通知呈现给所述OPC客户。
2.如权利要求1所述的方法,其中还包括:
按照过滤器判据过滤所述NT-AE。
3.如权利要求2所述的方法,其中所述过滤器判据由过滤器配置工具提供。
4.如权利要求2所述的方法,其中所述过滤器判据由系统事件过滤器snap-in提供。
5.如权利要求1所述的方法,其中所述转换步骤给所述NT-AE通知添加附加信息以产生所述OPC-AE通知。
6.如权利要求5所述的方法,其中所述附加信息包括建立所述NT-AE通知的源的指定。
7.如权利要求5所述的方法,其中所述源指定包括建立所述NT-AE的计算机的名称和所述NT-AE的插入字符串。
8.如权利要求7所述的方法,其中所述插入字符串标识产生所述NT-AE的组件。
9.如权利要求5所述的方法,其中所述附加信息包括事件严重性。
10.如权利要求9所述的方法,其中所述事件严重性是NT顺从严重性,其中所述转换步骤提供一种从所述NT顺从严重性到OPC顺从严重性的转换。
11.如权利要求10所述的方法,其中所述转换基于预定的严重性值。
12.如权利要求11所述的方法,其中所述转换基于所述NT-AE通知的登录的严重性值。
13.如权利要求5所述的方法,其中所述附加信息是一个或多个项目,从由以下项目构成的组中选择:事件cookie、源指定、事件严重性、事件类别、事件类型、事件可应答性和事件应答状态。
14.如权利要求1所述的方法,其中所述OPC客户,就建立所述NT-AE通知的源而言,或者是本机的或者是远程的。
15.如权利要求1所述的方法,其中所述呈现步骤通过多址通信链路把所述OPC-AE通知呈现给所述OPC客户。
16.如权利要求1所述的方法,其中所述NT-AE包括状态事件、简单事件或跟踪事件。
17.如权利要求16所述的方法,其中所述状态事件中的至少一个反映特定源的状态。
18.如权利要求1所述的方法,其中还包括使所述OPC-AE通知通过多址通信链路在多个节点之间同步。
19.如权利要求1所述的方法,其中所述OPC-AE通知是可通过OPC-AE接口或通过WMI接口访问的。
20.一种向OPC客户通知OPC报警和事件(OPC-AE)以及NT报警和事件(NT-AE)用的装置,所述装置包括:
系统事件提供器,它把NT-AE的NT-AE通知链接到附加信息;以及
系统事件服务器,它把所述NT-AE通知和所述附加信息包装成OPC-AE通知呈现给所述OPC客户。
21.如权利要求20所述的装置,其中还包括过滤器,所述过滤器按照过滤器判据过滤所述NT-AE通知。
22.如权利要求21所述的装置,其中所述过滤器判据由过滤器配置工具提供。
23.如权利要求21所述的装置,其中所述过滤器判据由系统事件过滤器snap-in提供。
24.如权利要求20所述的装置,其中所述附加信息包括建立所述NT-AE通知的源的指定。
25.如权利要求24所述的装置,其中所述源指定包括建立所述NT-AE的计算机名称和所述NT-AE的插入字符串,其中所述NT-AE是状态事件。
26.如权利要求25所述的装置,其中所述插入字符串标识产生所述NT-AE的组件。
27.如权利要求20所述的装置,其中所述附加信息包括事件严重性。
28.如权利要求27所述的装置,其中所述事件严重性是NT顺从严重性,其中所述系统事件提供器提供一种从所述NT顺从严重性到OPC顺从严重性的转换。
29.如权利要求28所述的装置,其中所述转换基于预定的严重性值。
30.如权利要求28所述的装置,其中所述转换基于所述NT-AE通知的登录的严重性值。
31.如权利要求20所述的装置,其中所述附加信息是一个或多个项目,从由以下项目构成的组中选择:事件cookie、源指定、事件严重性、事件类别、事件类型、事件可应答性和事件应答状态。
32.如权利要求20所述的装置,其中所述OPC客户,就建立所述NT-AE通知的源而言,或者是本机的或者是远程的。
33.如权利要求20所述的装置,其中还包括同步储存库提供器,所述同步储存库提供器通过多址通信链路把所述OPC-AE通知呈现给所述OPC客户。
34.如权利要求20所述的装置,其中所述事件是状态事件、简单事件或跟踪事件。
35.如权利要求34所述的装置,其中所述状态事件中的至少一个反映特定源的状态。
36.如权利要求20所述的装置,其中还包括同步储存库,用于通过多址通信链路在多个节点之间同步所述OPC-AE通知。
37.如权利要求20所述的装置,其中所述OPC-AE通知是可通过OPC-AE接口或通过WMI接口访问的。
38.如权利要求20所述的装置,其中所述系统事件服务器把所述OPC-AE通知提供给所述OPC客户。
39.如权利要求20所述的装置,其中所述系统事件提供器通过WMI接口与所述系统事件服务器通信。
40.如权利要求20所述的装置,其中还包括:
NT事件提供器,它提供所述NT-AE通知;以及
过滤器,它按照过滤器判据过滤所述NT-AE通知,使得只有满足所述过滤器判据的NT-AE通知才由所述系统事件提供器链接到OPC-AE通知。
41.如权利要求20所述的装置,其中所述NT-AE通知中的一个或多个是由源产生的状态事件而且反映所述源的状态,并且还包括响应由于所述源状态改变而产生的所述各状态事件中后来出现的一个,使所述各状态事件中早期出现的状态事件的状态在激活和非激活之间改变。
42.如权利要求41所述的装置,其中所述系统事件提供器把所述早期和后来出现状态事件的NT-AE通知链到到OPC-AE通知,以便呈现给OPC客户。
43.如权利要求1所述的方法,其中所述NT-AE通知中的一个或多个是由源产生的状态事件而且反映所述源的状态,并且还包括响应由于所述源状态改变而所述各状态事件中后来出现的状态事件,使所述各状态事件中早期出现的状态事件的状态在激活和非激活之间改变。
44.如权利要求43所述的方法,其中所述转换和呈现步骤把所述早期和后来出现的状态事件的NT-AE通知转换为OPC-AE通知,以便呈现给OPC客户。
45.一种用于繁殖过滤NT报警和事件(NT-AE)以便将其转换为OPC报警和事件的过滤器的方法,所述方法包括:
输入一些其通知要由所述过滤器传送的NT-AE;和
用一个或多个事件特性来配置所述输入的NT-AE,所述特性从包括以下项目的组中选择:事件类型、事件源、事件严重性、事件类别、事件状态、事件子状态和事件属性。
46.如权利要求45所述的方法,其中所述事件类型包括状态的、简单的和跟踪的
47.如权利要求45所述的方法,其中所述事件源包括建立特定的NT-AE通知的计算机的名称及其NT-AE的插入字符串。
48.如权利要求45所述的方法,其中所述事件严重性包括预定的严重性值或登录的严重性值。
49.如权利要求45所述的方法,其中所述事件类别包括装置的状态。
50.如权利要求45所述的方法,其中所述事件属性对于特定的事件类别来说包括特定NT-AE的可应答性和激活或非激活的状态。
51.一种繁殖过滤器用的配置器,所述过滤器过滤NT报警和事件(NT-AE)以便将其转换为OPC报警和事件,所述配置器包括:
配置装置,它提供:其通知要由所述过滤器传送的进入所述NT-AE过滤器的一些入口;以及所述输入的NT-AE的配置,所述配置具有一个或多个事件特性,所述特性从包括以下项目的组中选择:事件类型、事件源、事件严重性、事件类别、事件状态、事件子状态和事件属性。
52.如权利要求51所述的配置器,其中所述事件类型包括状态的、简单的和跟踪的。
53.如权利要求49所述的配置器,其中所述事件源包括建立特定的NT-AE通知的计算机的名称及其NT-AE的插入字符串。
54.如权利要求49所述的配置器,其中所述事件严重性包括预定的严重性值或登录的严重性值。
55.如权利要求49所述的配置器,其中所述事件类别包括装置的状态。
56.如权利要求49所述的配置器,其中所述事件属性对于特定的事件类别来说包括特定NT-AE的可应答性和激活或非激活的状态。
CN03820625.0A 2002-06-28 2003-06-30 系统事件过滤和给过程控制对象连接和嵌入法客户的通知 Pending CN1678998A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39249602P 2002-06-28 2002-06-28
US60/392,496 2002-06-28
US10/455,482 US20040006652A1 (en) 2002-06-28 2003-06-05 System event filtering and notification for OPC clients
US10/455,482 2003-06-05

Publications (1)

Publication Number Publication Date
CN1678998A true CN1678998A (zh) 2005-10-05

Family

ID=30003259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03820625.0A Pending CN1678998A (zh) 2002-06-28 2003-06-30 系统事件过滤和给过程控制对象连接和嵌入法客户的通知

Country Status (7)

Country Link
US (1) US20040006652A1 (zh)
EP (1) EP1518174A2 (zh)
JP (1) JP2005531864A (zh)
CN (1) CN1678998A (zh)
AU (1) AU2003247691A1 (zh)
CA (1) CA2490883A1 (zh)
WO (1) WO2004003735A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104488243A (zh) * 2012-07-24 2015-04-01 西门子公司 对服务器中的变量的写入访问
CN113557510A (zh) * 2019-03-12 2021-10-26 环球城市电影有限责任公司 安全器具扩展

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040045596A1 (en) * 2001-05-29 2004-03-11 Paul Lawheed Flat plate panel solar electrical generators and methods
US7284163B2 (en) * 2003-01-31 2007-10-16 American Megatrends, Inc. Event mechanism for reporting diagnostic event messages
US7313728B2 (en) 2003-02-05 2007-12-25 American Megatrends, Inc. Method and system for logging and accessing diagnostic result messages
US7404180B2 (en) * 2003-12-11 2008-07-22 Sap Ag Trace management in client-server applications
US7418507B2 (en) * 2003-12-18 2008-08-26 Microsoft Corporation Virtual resource serving of consolidated server shares
EP1743224A1 (de) * 2004-04-27 2007-01-17 Siemens Aktiengesellschaft Anordnung und verfahren zum betreiben einer technischen anlage
US8117534B1 (en) * 2004-06-09 2012-02-14 Oracle America, Inc. Context translation
US7380171B2 (en) 2004-12-06 2008-05-27 Microsoft Corporation Controlling software failure data reporting and responses
US20060168216A1 (en) * 2004-12-09 2006-07-27 Alexander Wolf-Reber Digital management system and method for managing access rights in such a management system
US8117597B2 (en) * 2005-05-16 2012-02-14 Shia So-Ming Daniel Method and system for specifying and developing application systems with dynamic behavior
US8051156B1 (en) * 2006-07-28 2011-11-01 Hewlett-Packard Development Company, L.P. Managing power and performance
US8046626B2 (en) * 2006-08-25 2011-10-25 Cisco Technology, Inc. System and method for maintaining resiliency of subscriptions to an event server
US8458350B2 (en) * 2006-11-03 2013-06-04 Rockwell Automation Technologies, Inc. Control and communications architecture
US8234384B2 (en) * 2006-11-13 2012-07-31 Jemmac Software Limited Computer systems and methods for process control environments
US8132181B2 (en) * 2006-11-30 2012-03-06 Dell Products L.P. Method, apparatus and media for indication management in an information model environment
US8700760B2 (en) * 2008-08-18 2014-04-15 Ge Fanuc Intelligent Platforms, Inc. Method and systems for redundant server automatic failover
EP2157733A1 (en) * 2008-08-22 2010-02-24 ABB Research LTD A method and device for data transmission between a wireless sensor network and a data collection system
JP4891388B2 (ja) * 2009-12-28 2012-03-07 株式会社エスディー システムイベントログシステム
KR101109489B1 (ko) 2010-10-27 2012-02-07 현대제철 주식회사 제어시스템간 통신장치
CA2823810C (en) * 2011-01-06 2016-08-09 Research In Motion Limited Delivery and management of status notifications for group messaging
CN102073549B (zh) * 2011-01-18 2013-06-19 浙江大学 一种基于资源共享的组件间通信方法
US9143440B2 (en) * 2011-04-02 2015-09-22 Open Invention Network, Llc System and method for unmarshalled routing
US9854027B2 (en) * 2012-05-31 2017-12-26 Siemens Aktiengesellschaft Providing clients access to a server service using an OPC unified architecture (OPC-UA)
US20160342453A1 (en) * 2015-05-20 2016-11-24 Wanclouds, Inc. System and methods for anomaly detection
US10713320B2 (en) * 2017-10-09 2020-07-14 Facebook, Inc. De-duping events on online social networks
CN109885387B (zh) * 2019-01-30 2023-09-29 弗徕威智能机器人科技(上海)有限公司 一种适用于机器人的事件恢复机制
US11099827B2 (en) * 2019-10-15 2021-08-24 Dell Products L.P. Networking-device-based hyper-coverged infrastructure edge controller system
CN111025957A (zh) * 2019-10-30 2020-04-17 光大环保技术装备(常州)有限公司 一种诊断opc之间通讯中断的方法和系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145009A (en) * 1997-05-20 2000-11-07 Kabushiki Kaisha Toshiba Event controlling system for integrating different event driven systems
US6317748B1 (en) * 1998-05-08 2001-11-13 Microsoft Corporation Management information to object mapping and correlator
US6314533B1 (en) * 1998-09-21 2001-11-06 Microsoft Corporation System and method for forward custom marshaling event filters
US6367034B1 (en) * 1998-09-21 2002-04-02 Microsoft Corporation Using query language for event filtering and aggregation
US6275957B1 (en) * 1998-09-21 2001-08-14 Microsoft Corporation Using query language for provider and subscriber registrations
EP1006443A2 (en) * 1998-11-30 2000-06-07 Hitachi, Ltd. A method of and an apparatus for conventing an event of a distributed application and recording madia for storing the method
US7017116B2 (en) * 1999-01-06 2006-03-21 Iconics, Inc. Graphical human-machine interface on a portable device
TW433526U (en) * 1999-04-06 2001-05-01 Hon Hai Prec Ind Co Ltd Fixing and holding apparatus for data access device
US20020026533A1 (en) * 2000-01-14 2002-02-28 Dutta Prabal K. System and method for distributed control of unrelated devices and programs
US6853920B2 (en) * 2000-03-10 2005-02-08 Smiths Detection-Pasadena, Inc. Control for an industrial process using one or more multidimensional variables
US6988236B2 (en) * 2000-04-07 2006-01-17 Broadcom Corporation Method for selecting frame encoding parameters in a frame-based communications network
US7444395B2 (en) * 2000-06-07 2008-10-28 Microsoft Corporation Method and apparatus for event handling in an enterprise
US7418489B2 (en) * 2000-06-07 2008-08-26 Microsoft Corporation Method and apparatus for applying policies
US7412501B2 (en) * 2000-06-07 2008-08-12 Microsoft Corporation Event consumers for an event management system
US7174557B2 (en) * 2000-06-07 2007-02-06 Microsoft Corporation Method and apparatus for event distribution and event handling in an enterprise
US7171459B2 (en) * 2000-06-07 2007-01-30 Microsoft Corporation Method and apparatus for handling policies in an enterprise
US20020123966A1 (en) * 2000-06-23 2002-09-05 Luke Chu System and method for administration of network financial transaction terminals
US7644120B2 (en) * 2000-09-15 2010-01-05 Invensys Systems, Inc. Industrial process control data access server supporting multiple client data exchange protocols
US6728262B1 (en) * 2000-10-02 2004-04-27 Coi Software, Inc. System and method for integrating process control and network management
US6810400B2 (en) * 2000-11-17 2004-10-26 Microsoft Corporation Representing database permissions as associations in computer schema
US6690811B2 (en) * 2000-12-08 2004-02-10 The Hong Kong University Of Science And Technology Methods and apparatus for hiding data in halftone images

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104488243A (zh) * 2012-07-24 2015-04-01 西门子公司 对服务器中的变量的写入访问
CN104488243B (zh) * 2012-07-24 2017-11-24 西门子公司 对服务器中的变量的写入访问
CN113557510A (zh) * 2019-03-12 2021-10-26 环球城市电影有限责任公司 安全器具扩展

Also Published As

Publication number Publication date
AU2003247691A1 (en) 2004-01-19
EP1518174A2 (en) 2005-03-30
WO2004003735A2 (en) 2004-01-08
WO2004003735A3 (en) 2004-12-16
CA2490883A1 (en) 2004-01-08
JP2005531864A (ja) 2005-10-20
US20040006652A1 (en) 2004-01-08

Similar Documents

Publication Publication Date Title
CN1678998A (zh) 系统事件过滤和给过程控制对象连接和嵌入法客户的通知
CN1261892C (zh) 支持多个客户数据交换协议的工业过程控制数据访问服务器
CN1304981C (zh) 用于基于规则的万维网方案与活动的系统与方法
CN1269337C (zh) 内容自适应服务控制方法
CN1791871A (zh) 企业控制台
CN1601510A (zh) 分布式计算系统的架构和分布式应用程序的自动设计,部署及管理
CN1828527A (zh) 用于跨不同应用程序框架的数据服务的平台
CN1669018A (zh) 手持终端框架系统
CN1949763A (zh) 共享信息服务器系统
CN1869923A (zh) 系统数据接口及相关体系结构
CN1678993A (zh) Web服务设备和方法
CN1495602A (zh) 成像装置、信息处理装置、程序执行方法及程序生成方法
CN1524216A (zh) 软件构件插件程序结构的系统和方法
CN1783083A (zh) 动态概要模块
CN1703701A (zh) 用于管理门户服务器中的门户构件集合的方法和装置
CN1961329A (zh) 用于按需业务协作的信息超链管理的方法和装置
CN1754148A (zh) 动态数据驱动应用集成适配器
CN101044498A (zh) 工作流服务体系结构
CN1610323A (zh) 控制系统设定装置和控制系统设定方法及设定程序
CN1609795A (zh) 用于计算机平台的编程接口
CN1740970A (zh) 无缝地比较对象的系统和方法
CN1573656A (zh) 并行处理系统中的电源管理系统及电源管理程序
CN1809815A (zh) 管理锁定和事务
CN1703016A (zh) 虚拟网络拓扑结构生成
CN1285032C (zh) 外部事件处理器系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20051005