專利名稱::系統事件過濾和給過程控制對象連接和嵌入法客戶的通知的制作方法
技術領域:
:本發明一般地涉及連接在網絡中的多個計算節點之間的系統事件的濾過和通知,更具體地說,涉及用于在窗口管理設施(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和28每一個都包括本發明的節點計算機34。節點計算機34包括多個運行期系統組件,就是說,WMI平臺36、重定向器服務器38、系統事件服務器(SES)40、HCI客戶通用程序管理器42、組件管理器44和系統顯示器46。WMI平臺36包括本地組件行政管理業務提供器48、遠程組件行政管理提供器50、系統事件提供器(SEP)52、名稱業務提供器(NSP)54、同步儲存庫提供器(SRP)56和”心跳”測試包提供器58。圖2中的直線代表不同的運行期系統管理組件之間的通信途徑。SRP56可以用來使其計算節點內儲存庫的數據與位于系統20其它計算節點的儲存庫的數據同步。例如,計算節點的每個同步提供器,諸如SEP52和NSP54,兩者都有相關聯的數據儲存庫并且是SRP56的客戶。系統顯示器46用作使用戶可以配置和監視計算節點22、24、26或28及其被管理組件,諸如監視和控制過程32的傳感器和/或變送器的工具。系統顯示器46提供執行遠程節點和組件配置的能力。系統顯示器46從它的本地”心跳”測試包提供器58和SEP52接收節點和系統狀態。系統顯示器46連接到每一個被監視的節點的本地組件行政管理業務提供器48,以便接收被管理組件的狀態。NSP54向WMI客戶提供別名和相關聯的組件信息的子集。計算節點的NSP54根據不同的計算節點的另一個建立的NSP54(若存在)的數據庫來初始化相關聯的數據庫,然后利用其計算節點的SRP56使其相關聯的數據庫同步。SEP52作為系統事件公布本地事件,并在預定范圍內維護系統事件的同步的本地拷貝。SEP52向WMI客戶展示系統事件。如2圖所示,系統顯示器46和SES40都是SEP52的客戶。組件管理器44監視和管理本地被管理組件。組件管理器44實現WMI提供器接口,它向標準WMI客戶展示被管理組件的狀態。“心跳”測試包提供器58向連接的WMI客戶提供當前報告”心跳”測試包的所有計算節點的清單和”心跳”測試包提供器58多址通信范圍內計算節點的增加和拆除的事件通知。SRP56進行保持信息同步所必需的較低層的節點間通信。SEP52和NSP54是在SRP56的能力的基礎上建立的。這使SEP52和NSP54可以分別維護系統事件和別名的同步數據庫。參見圖3,SRP56和”心跳”測試包提供器58利用多址通信鏈路70進行節點間通信。另一方面,系統顯示器46利用WMI業務與它的本地”心跳”測試包提供器58和SEP52通信。系統顯示器46還利用WMI業務與本地和遠程被管理節點上的本地組件行政管理業務(CAS)提供器48和遠程組件行政管理業務(CAS)提供器50通信。系統狀態顯示器46提供一個通用框架,售主通過所述框架移交綜合系統管理工具。與系統狀態顯示器46緊密耦合的是WMI業務。售主通過WMI展示系統組件的管理和監視用的可定購的(scriptable)接口。系統狀態顯示器46和WMI一起提供可定制和可擴展的通用用戶接口和信息數據庫。系統狀態特征60是作為提供計算機和被管理組件狀態的層次視圖的MMCSnap-in實現的。系統狀態特征60使用激活目錄業務接口(ADSI),以便讀出定義TPS域的已配置的域/組織單元拓撲結構。每個節點計算機上的WMI提供器提供訪問配置和狀態信息的途徑。是通過WMI事件通知來更新狀態信息。系統顯示器窗口劃分成三部分·菜單/標題-通用和定制控件,顯示在窗口頂部,用以控制窗口或項目行為。·控制臺窗口的范圍框-左框,用以顯示所安裝的snap-in及其所包含的項目的樹狀圖。·控制臺窗口的結果框-右框,顯示有關在范圍框內選取的項目的信息。視圖模式包括大圖標、小圖標、清單和詳圖(默認視圖)。被管理的組件還能提供在結果框內顯示用的定制的ActiveX控件。系統事件提供器SEP52是一種增強了的NT登錄事件的同步提供器。它使用過濾器表84來限制要處理的NT登錄事件,并用產生配合OPC-AE使用的事件所要求的數據來增強這些傳送來的事件。它維護這些事件的儲存庫,后者利用SRP56與已配置的激活目錄范圍內的每個節點同步。SEP52負責按照事件過濾器文檔內定義的事件類型和屬性管理事件發送和狀態。SEP52是作為WMI提供器實現的。WMI提供一種事件通知、儲存庫維護和訪問和方法輸出用的通用接口。不要求定制代理服務器而接口是可定購的。SEP52利用SRP56使它的儲存庫內容與已配置的激活目錄范圍內的全部節點同步。這減少網絡頻帶寬度使用量和減少連接管理和同步問題。多址通信組地址和端口以及激活目錄范圍從同步儲存庫標準配置頁配置。像其它所有標準配置頁一樣,所述選項將由系統狀態顯示器46顯示在計算機配置環境菜單上。默認的SEP52客戶配置將寫到SRP客戶配置登錄鍵。所述鍵將包含名稱和范圍值。名稱是對用戶友好的SEP業務用的名稱,而范圍將默認為″TPSDomain″,指示包含激活目錄對象(TPS域的組織單元)。并不是全部NT事件都發送到系統事件預定器。用過濾器表來確定一個事件是否一直發送到客戶,以及是否增添數據,從NT事件建立OPC事件。在所述表中沒有登錄的事件將被忽略。過濾器表用配置工具創建。OPC事件要求附加的信息,諸如事件類別、事件源和事件是否可應答等,可以在NT事件中獲得。過濾器表最好裝有把NT事件轉換為OPC事件格式用的附加信息。事件源一般是計算機名稱和組件名稱的結合,由點號分開,但是它可以配置成沒有計算機名稱。計算機名稱是產生所述事件的計算機名稱。組件名稱是事件的插入字符串中的一個。它一般是第一個插入字符串,但是也可以配置成任何一個的插入字符串。利用標準事件登錄方法(Win32或WMI)來把事件登錄到NT事件登錄文檔。SEP52登錄關于新的事件的InstanceCreationEvent通知。得到通知時,若所述事件是直通事件,則建立所述事件的提供器維護的摘要記錄,而InstanceCreationEvent是組播到系統事件多址通信組。SEP52讀取由系統事件過濾器Snap-in86定義的過濾器表。過濾器表確定哪些事件將登錄到SEP儲存庫和定義產生OPC-AE事件所需要的附加數據。系統事件過濾器表84給每一事件類型指定一個嚴重性,因為窗口事件嚴重性不一定直接轉換為要求的OPC事件嚴重性。若指定0的嚴重性,則被指定給所述原來的NT事件的事件嚴重性將轉換為一個預先指定的OPC嚴重性值。NT事件到OPC事件嚴重性轉換值列于表27。兩個主要的事件類別是由SEP52處理的與狀態有關的事件和簡單的/跟蹤事件。與狀態有關的事件在所配置范圍內所有節點上的SEP52內一個同步儲存庫中維護。簡單的或跟蹤事件實時提交給任何連接的客戶。對于簡單的或跟蹤事件,不保證遞送,不維護儲存庫狀態,并且不可能進行事件恢復。SEP52通過源和狀態名稱組合來維護一個所有與狀態有關的事件的映射。新的與狀態有關的事件產生時,與同一源和狀態名稱登錄的事件將通過帶有Active=FALSE的特性的_InstanceModificationEven自動地被去激活。條件狀態的改變會產生一個相應的跟蹤事件,SEP52產生一個外部的事件通知,識別所述條件(Condition)、狀態(state)、時間戳和用戶。當完成同步時,SEP52將要在同步視圖更新與狀態有關的事件的激活狀態,其狀態在本機事件映射中維護。若所述本機映射不包含一個包括在所述同步視圖中的狀態事件,則所述事件將在所述儲存庫中被去激活。因為狀態事件和它們的相關返回正常事件(使有關激活狀態事件被去激活)是松耦合,所以一個事件登錄項目可能不登錄要求的返回正常事件,而所述與狀態有關的事件在激活狀態下可能沒有正確地被去激活。為了保證這些事件可以從SES(GOPCAE)狀態數據庫和所述SEP儲存庫清除,每個確認的激活事件都將繼續運行一段可以配置的周期(在安裝過程中設置一個默認周期),并且當所述周期過去時被去激活。簡單事件和跟蹤事件不保存在所述SEP儲存庫中,而是作為外部事件提交給任何連接的客戶。這些事件通過SRPSendExtrinsicNotification()方法提交給所有SEP。簡單的或跟蹤事件不恢復。這些事件不可應答。若一個事件顯示器選擇要顯示這些事件,則在一個節點上應答或清除事件的其它裝置不會影響其它節點。將增加新的WMI類,來支持外部跟蹤的和簡單事件類型。SEP將用SRP56來登記這個的新類(TPSSysEvtExt)。SRP56將會發現,所述類是從WMIExtrinsicEvent類衍生的,而不會執行這些事件的任何同步。SRP56將只會以直通方式動作。與狀態有關的事件的源和狀態名稱映射將由SEP52維護。每一個SEP52都將要管理所述在本機節點產生的與狀態有關的事件的激活狀態。在所述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客戶客戶對象用SRP56登錄。若立即需要數據同步,它將接收SyncWithSource消息。若SRP56判定內部事件清單數據失去同步,則它還定期地接收SyncWithSource消息。收到SyncWithSource消息時,它使用所述消息的″源″特性,連接外部節點的SEP52并請求所述事件清單。然后用新的清單替換所述內部事件清單。若在遠程節點上建立事件,則將收到InstanceCreation消息。它將給所述內部事件清單增加所述新的事件并請求WMI提供器對象向客戶發出通知。當事件被修改(應答)或清除時使用所述方案。當事件在本機登錄時,NT事件客戶對象將調用所述對象,以便向外部節點發送實例建立消息。當事件被客戶應答或清除時,WMI提供器對象將調用所述子系統向外部節點發送實例修改或刪除消息。若收到LostMsgError或DuplicateMsgError消息,則不采取行動。SES40是SEP52的WMI客戶。被SEP52遞送的每一個事件都作為InstanceCreationEvent被SES40接收。跟蹤事件是一次事件,并簡單地被SES40向上傳送。狀態事件反映被監視的特定源的狀態。這些狀態在SES40內部的報警和事件狀態數據庫中維護。SEP52用要求的SES信息在從過濾器表取出時繁殖所接收的NT事件。所述信息包括事件cookie、源字符串、事件嚴重性、事件類別和類型以及事件是否ACKable(可應答)和當前ACKed(已應答)狀態。接收給定的源的新的與狀態有關的事件時,新的狀態必須超過(supercede)前一狀態。收到與狀態相關的事件時,SEP52將查閱所述源的當前狀態,并將產生__InstanceModificationEvent,將當前狀態去激活。然后加上新的狀態事件。同步儲存庫提供器SRP56是SEP52的基本組件。SEP52和NSP54提供登錄的實例類的復合視圖。SEP52和NSP54通過SRP56實現的無連接可靠協議獲得它們各自的儲存庫數據。SRP56是一個WMI外部事件提供器,所述WMI外部事件提供器實現可靠的互聯網協議(IP)基于多址通信技術,用以維護分布式管理數據的同步WBEM儲存庫。SRP56不需要動態實例提供器或實例客戶來形成多個遠程連接以便采集分布式數據的組合視圖。SRP56維護同步視圖的狀態,以確保數據改變事件的發送。使用無連接協議(UDP),它把網絡/計算機outages對連接客戶和服務器的影響減到最小。IP多址通信的使用減少對網絡的影響并簡化了配置。SRP56實現標準WMI外部事件和方法提供器接口。從同步提供器(例如,SEP52或NSP54)利用IWbemServices::ExecMethod[Async]()方法對SRP56的所有方法進行調用。來自SRP56外部事件數據的登錄通過一個對IWbemServices::ExecNotificationQuery[Async]()的SRP實現的調用。SRP56提供外部事件通知,而連接狀態通過分別對IWbemObjectSink::Indicate()和IWbemObjectSink::SetStatus()的客戶實現的回調更新SEP52和NSP54。因為只使用標準WMI接口,(安裝在全部Win2K計算機),不要求定制程序庫或代理服務器文檔來實現或安裝SRP56。為了減少配置復雜性和優化多種用途,對全部登錄的客戶(同步提供器)使用單一IP多址通信地址。接收的多址通信由WBEM類和源計算機激活目錄路徑過濾,然后提交給適當的同步提供器。每一個客戶用SRP56由WBEM類登錄。每一個登錄的類具有激活目錄范圍,也就是說可以個別配置。SRP56使用IP多址通信,以便既遞送同步控制消息又遞送儲存庫更新,減少通知發送的系統開銷并保持網絡的頻帶寬度。儲存庫同步是在同步節點之間通過傳輸控制協議/互聯網協議(TCP/IP)流連接進行的。用TCP/IP流進行同步,減少了復雜性多址通信通信量的解讀,并保證儲存庫數據的可靠的點到點發送。同步提供器不同于標準實例提供器之處在于實例通知是提交給客戶的。不是把實例通知直接提交給winmgmt業務的IWbemObjectSink,而是同步提供器連接到SRP56并利用SRPSendinstanceNotification()方法提交實例通知。然后SRP通過多址通信把實例通知發送到所述配置同步組中的所有提供器。SRP56收到的實例通知通過外部事件經過winmgmt轉送到同步提供器。同步提供器接收SRP外部事件,從所述外部事件取出所述實例事件,必要時將其應用于內部數據庫,然后通過winmgmt把所述事件轉送到連接的客戶。同步數據通過包含實例陣列的外部事件對象提交給同步提供器。對象陣列通過TCP/IP流從遠程同步提供器,亦即當前正在同步的提供器提交給同步節點。同步提供器SRP客戶必須把所述收到的排列與本機產生的實例合并,并通過把實例通知通過SRP56發送給通知遠程同步提供器。每個同步提供器必須確定如何最好地合并同步數據和本機儲存庫數據。客戶應用程序訪問同步提供器(已經登錄為SRP客戶的提供器)就像它們為其它任何WBEM實例提供器那樣。儲存庫的同步屬性對同步提供器的客戶是透明的。SRP56將配置有MMC特性頁,調整指定的一組計算機的登錄設置。SRP既要求IP多址通信配置又要求激活目錄范圍字符串配置。通過默認,SRP56將利用為HKLM\Software\Honeywell\FTE登錄鍵找到的”心跳”測試包提供器58配置的IP多址通信(IPMC)地址。它提供IP多址通信組通過局域網路診斷消息(“心跳”測試包)健康的正面指標。SRP消息用的UDP接收端口是獨特的(不與”心跳”測試包提供器58共享)。多址通信通信往往受路由器限制。若網址(site)通過路由器要求數據同步,則網絡配置步驟可能必須允許通過所述路由器傳送多址通信消息。激活目錄范圍是逐個同步提供器(例如,SEP52或NSP54)配置的。每一個安裝的客戶將給HKLM\Software\Honeywell\SysMgmt\SRP\Clients鍵增加帶有所支持的WMI類的名稱的鍵。所述客戶將給所述鍵增加名稱和范圍值。名稱值將是REG_SZ值,包含對用戶友好的名稱,在配置接口中顯示。范圍值將是REG_MULT_SZ值,包含所述激活目錄范圍字符串。SRP配置頁將給用戶呈現一個組合框,允許選擇一個安裝的SRP客戶來配置。將利用SRP\Clients鍵控制下列出的每個客戶類清單的名稱值來繁殖所述組合框。一旦已經選取客戶提供器,便用檢查框項目顯示激活目錄樹,使用戶可以選擇更新用的范圍。用復選標記賦初值,以便與當前客戶范圍值匹配。為了通過IP多址通信傳送實例內容,必須讀出IWbemClassObject的屬性,并通過UDPIP把多址通信分組傳到多址通信組,并在接收端重構。每個通知對象都經過檢驗,其內容寫到SRP存儲器中的一個流對象。實例屬性的數量首先寫入所述流,后面寫入名稱(BSTR)/數據(變體)對的全部實例屬性。然后流把包裝成IP多址通信UDP數據分組并發射。收到時,提取出屬性數量并從所述流中讀出名稱/數據對。建立類實例并用收到的值繁殖,然后通過外部事件發送到winmgmt業務,以便發送到登錄的客戶(同步提供器)。變體不能包含引用數據。包含值的安全(safe)陣列的變體通過首先寫變體類型,后面是包含于安全排列中的實例數量,然后是變體類型和全部包含元素的數據。為了避開響應風暴(storms),在發送之前隨機地延遲多址通信響應,最多延遲請求器規定的最長時間。若在本機響應發送之前由響應節點從另一個節點收到有效的響應,則發送將被取消。參見圖4,所示節點計算機34在一個配置中,它描寫按照本發明的NT-AE通知和OPC-AE的通知的濾過作用。SRP56通過多址通信鏈路70從系統20中的其它計算節點收到OPC-AE通知。SRP56利用WMI業務36把這些通知送到SEP52,假定SEP52是題為要接收所述通知的一組的訂戶。SEP52本身通過WMI業務36把OPC-AE通知送到SES40。SES40又把OPC-AE通知送到它的訂戶客戶,諸如OPC-AE客戶80。OPC-AE客戶80(或SES40的其它OPC客戶)產生的OPC-AE通知被SES40接收并通過WMI業務36和SEP52傳送到SRP56。然后SRP56把這些OPC-AE通知包裝成分組,分發到適當的訂戶組,對于其本地客戶分發是通過SEP40,而對于其它計算的節點的遠程客戶則通過多址通信鏈路70。WMI業務36包括NT事件提供器82,它裝有出現在節點計算機34之內的NT-AE的通知。NT事件提供器82使用WMI業務36來向SEP52提供這些NT-AE通知。如上所述,不是所有NT-AE都發送到OPC客戶,不像NT格式中的和OPC格式中的NT事件。按照本發明,設置過濾器表84,來過濾NT-AE通知,并將其換變為OPC-AE通知。設置過濾器配置工具(系統事件過濾器Snap-in86),以便使用戶可以定義這些將換變為OPC-AE通知的NT-AE通知,并提供給訂戶客戶。還為SEP52使用而設置上述把NT-AE通知換變為OPC-AE通知的所必需的附加的信息,并且最好包含在過濾器表84之內。附加的信息包括這樣的項目,即事件類型(簡單的、跟蹤的和狀態的)、事件類別、事件源、事件嚴重性(1-1000)和源插入字符串以及所述事件是否可應答。當被用戶選取時,系統事件過濾器Snap-in86顯示節點計算機34上的全部登錄消息表.選擇所述消息表時,也就是說,用來登錄要求的事件,全部包含消息顯示在結果框上,更新來自預存過濾器表文件的附加的值。若文件不存在,則為所述要求事件建立一個新的文件。用戶還選擇要由SEP52登錄的消息,并輸入把NT-AE通知轉換為OPC-AE通知所需要的附加的信息。完成后,保存更新后的過濾器表。第一實施例的邏輯設計方案CAS48提供以下業務,取決于服務器類型。以下是所支持的服務器清單·HCI管理服務器·HCI管理狀態服務器·不被管理的透明重定向器服務器·不被管理的OPC服務器CAS48提供HCI管理服務器用的以下業務·配置服務器的自動檢測和監視·節點啟動時任選地自動啟動所述服務器。·WMI客戶用的展示方法,以引發服務器啟動、停止和檢查點。·向WMI客戶展示被監視的服務器狀態信息CAS48為不被管理的服務器提供以下業務·WMI客戶開始和停止監視不被管理的服務器的用的展示方法。·向WMI客戶展示被監視的服務器狀態信息因為對組件配置的改變和報道的組件狀態影響控制過程,所以CAS48向由SEP52挑揀出來用以向SES40發送的窗口應用事件登錄庫登錄事件。SES40把窗口或NT-AE通知轉換為要通過OPC-AE接口提交的OPC-AE通知。以下方案描述CAS48用的事件登錄必要的條件和后來由SEP52和SES40執行的處理。表1中提出的方案表示WMI客戶進行組件方法調用。停止方法調用的用法只是要舉例說明當客戶調用HCI組件上的方法時執行的步驟。其它組件方法調用遵循相似的程序。啟動所述節點并且啟動CAS48,而HCI組件正在運行。表1事件事件的描述1系統狀態顯示,用戶右擊適當的組件并選擇停止菜單項目。2CAS48接收所述請求,并引發HCI組件上的停止方法。3HCI組件完成所述停止操作。4CAS48檢測到狀態的改變并創建一個組件修改事件,后者把狀態改變通知所有連接的WMI客戶。5CAS48向所述應用事件登錄庫記錄狀態改變。6SEP52檢測到新的事件登錄項,并在未確認的狀態下向SRP56添加一個狀態事件。向所述節點增加一個新的HCI管理組件。CAS48自動地檢測新的組件。啟動所述節點并且啟動CAS48,如表2所示,利用HCI組件配置頁增加一個新的HCI管理組件。表2事件事件的描述1CAS48從窗口2000接收更新,指示包含組件信息的登錄鍵已經修改。2CAS48檢測到新的HCI管理組件并啟動監視線程。管理組件必須具有設置為是/真管理價值或將其忽略。例如,TRS設置為No/False(否/假)。3CAS48創建組件建立事件,通知新的組件的所有連接的WMI客戶。4監視線程等待組件啟動,以便開始監視狀態。5把一項寫到本機應用事件登錄庫,指明建立新的組件。6SEP40檢測到所述事件并將其作為跟蹤事件添加到系統事件儲存庫。刪除HCI管理組件的配置。CAS48自動地檢測新的組件。啟動所述節點并且啟動CAS48,如表3所示,所述組件被停止,用戶利用HCI組件配置頁刪除管理組件。表3事件事件的描述1CAS48從Windows2000接收更新,指示包含組件信息的登錄鍵已經修改。2CAS48通過修改的登錄鍵檢測到所述HCI組件的刪除。3CAS創建組件刪除事件,通知連接WMI的客戶所述組件已被刪除。4CAS48停止監視所述組件的線程。5CAS48把事件寫到應用事件登錄,說明所述組件正在刪除,指示所述組件現在處于未知狀態。6SEP52檢測到新的事件登錄項并把狀態事件添加到所述系統事件儲存庫。被賦予″未知″的OPC服務器狀態的事件由SES40用來1)AutoAck(自動確認)利用與所述刪除組件一樣的源的任何顯著的事件2)具有和刪除組件一樣的源的狀態返回到正常。7把一項寫到本機應用事件登錄庫(事件num;2),指明組件已刪除。8SEP40檢測到所述事件并將其作為跟蹤事件添加到系統事件儲存庫。HCI管理組件改變狀態。CAS48檢出狀態的改變并展示給連接的WMI客戶。如表4所示,啟動所述節點并且啟動CAS48,HCI組件A正在運行。表4事件事件的描述1管理組件A改變狀態(例如與TPN服務器有關的LCNP失敗;這使狀態改為報警)。2CAS48檢測到組件狀態改變并通過WMI組件修改事件展示所述信息。3全部連接的WMI客戶,諸如系統狀態顯示器46,接收WMI事件,指示狀態改變4把組件狀態改變寫到應用事件登錄。5SEP52檢測到新的事件登錄項并在未確認的狀態下向SRP56添加狀態事件。HCI管理狀態組件檢測到監視裝置狀態的改變。CAS48檢測出狀態的改變,并向連接的WMI客戶展示。如表5所示,啟動所述節點并且啟動CAS48,而HCI狀態組件A正在運行。表5事件事件的描述1狀態組件A正在運行,并且被監視的裝置報告失敗狀態(例如,HB提供器報告A鏈路遇險)。2CAS48檢測到裝置狀態改變并且通過WMI組件向連接的客戶展示所述信息。狀態組件報告組件狀態和裝置狀態兩者。在這種情況下只有裝置的狀態變化,而所述組件狀態不變。3全部連接的WMI客戶,諸如系統狀態顯示器46,接收WMI事件,指示狀態改變。4所述裝置狀態改變寫入應用事件登錄。這些事件不會增加到系統事件用的過濾器表。完成這一點是為了避免來自多個計算機的復制事件。5SEP52檢測到新的事件登錄項,并在未確認的狀態下向系統事件儲存庫添加狀態事件。透明的重定向器服務器(TRS),一個不被管理的組件請求CAS48以監視其狀態。如表6所示,節點啟動和CAS48啟動并且TRS正在啟動。表6事件事件的描述1TRS通過WMI連接到本地CAS48,并且用其自己的名稱和未知點調用監視組件方法。2CAS48使所述組件名稱獨特并且創建線程來監視所述組件。采用獨特名稱的理由是,可能會有多個同樣名稱/組件的實例。獨特的名稱是組件的名稱。所述獨特的名稱還必須在重新引導系統之后再繼續,并且TRS停止,以保證新的TRS實例不獲得和已經停止的早期實例相同的名稱。和現存事件一致時會造成困惑。3CAS48通過所述方法調用把獨特的組件名稱返回TRS。當請求停止監視所述組件時使用所述獨特名稱。4CAS48創建組件建立事件,以便把新的被監視的組件通知連接WMI的客戶。5CAS48把一項寫入應用事件登錄庫,指示所述組件正在被監視。6SEP52檢測到新的事件登錄項,并給系統事件儲存庫添加跟蹤事件。透明的重定向器服務器(TRS)請求CAS48,以停止監視它的狀態。如表7所示,啟動所述節點并且啟動CAS48,而停止被監視的TRS。表7事件事件的描述1TRS通過WMI連接到本地CAS48并用monitor組件方法返回的獨特名稱調用Unmonitor組件方法。2CAS48停止組件monitor線程。3CAS48為正在被刪除的組件把一個事件寫到應用事件登錄,指示所述組件現在處于未知狀態。4SEP52檢測到新的事件登錄入口并把一個狀態事件添加到所述系統事件儲存庫。所述事件由SES40用來去激活狀態數據庫中的OPC-AE事件。5CAS48創建一個組件刪除事件,以通知連接WMI的客戶所述組件不再被監視。6CAS48把一個入口寫入應用事件登錄,指示所述組件不再監視。7SEP52檢測到新的事件登錄入口,并添加一個跟蹤事件系統事件儲存庫。“心跳”測試包提供器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向所述應用事件登錄登錄一個事件。6SEP52檢測到事件檢查過濾器表并有條件地向所述同步儲存庫登錄事件。注意SES節點將是”心跳”測試包提供器58用的帶有過濾器的唯一節點。這避免節點失效的多個拷貝。SEP52是NT-AE同步儲存庫。可以通過所述系統、CCA應用程序或第三方應用程序產生NT-AE。它利用所述SRP56來維護所有節點上的系統事件的一致視圖。它還利用過濾器表84來控制變為OPC-AE通知的NT-AE通知。過濾器表84提供一個將增加到SRP56的所述事件的包含清單。任何窗口2000事件都可以包含。所有事件是定制的,以便如表10所描繪的,標識諸如事件類型(簡單的、跟蹤的、條件的)、嚴重性(1-1000)并源插入字符串索引號等SES40需要的信息。表10事件事件的描述1用戶啟動SEP過濾器Snap-in86。Snap-in86顯示計算機的所有登錄的消息表。2用戶選擇用以登錄所述要求事件的消息表。Snap-in86顯示結果框中的所有包含的消息,并從預存的過濾器表文件更新附加的值。若文件不存在,則當保存所述改變時建立它。3用戶選擇應該通過SEP52登錄的消息,并輸入把所述事件轉換為0PC事件所需要的附加信息。4用戶保存所述過濾器表84。5過濾器表84對所有計算機都是分布式的(手工的或通過Win2K離線檔案夾),是登錄所述事件所需要的。6用戶停止并重新起動SEP52業務。HCI名稱業務建造和維護HCI/OPC服務器別名數據庫。客戶應用程序使用所述名稱業務來找到CLSID、ProgiD和作為所述服務器的主機的節點的名稱。對所述名稱業務的問集成在HCI工具包API中,類似于GetComponentlnfo()來提供與以前開發的HCI客戶應用程序的反向兼容性。在所有被管理的節點上維護別名同步數據庫。每一個節點都被賦予決定同步數據庫范圍的多址通信組。啟動所述節點,而窗口業務控制管理器(SCM)啟動HCI名稱業務。適當配置所述節點并將其賦予多址通信組。如表11所描繪的,所述組中的其它節點都已經運行。表11事件事件的描述1用SRP56進行名稱業務登錄。2名稱業務向SRP56發送一個請求報文來請求同步源。3一個遠程節點上的SRP56響應該請求。4名稱業務通過形成到所述遠程名稱業務提供器的WMI連接,與相應節點同步。所述名稱業務列舉所述源節點名稱業務的所有實例,并初始化所述本地儲存庫,主文件登錄項除外。5名稱業務把與所述激活目錄想聯系的節點TPSDomain與所述節點啟動的最后時刻所記錄加以比較。若無激活目錄可用,則使用最后記錄的TPSDomain。若記錄了所述TPSDomain,并檢測出一個改變,則跳到描述當一個節點移動到另一個TPSDomain時發生的情況的方案。所述TPSDomain包括在所述節點的激活目錄顯示其特點的名稱內。所述節點的顯示其特點的名稱以UNC格式記錄在所述登錄庫中。6名稱業務查詢本地登錄庫,查找本地登錄的組件,并檢查重名。1.若找不到,則把所述組件增加到同步名稱業務儲存庫。2.若找到并且所有信息都相同,則不要求進一步的操作。3.若找到并且是LocalOnly(僅本機用),則它代替所述重復的項目,并且不進行同步。4.若找到并且它是一個域組件,則把一個重復組件別名事件寫到應用程序登錄庫。所述重復事件配置入系統事件過濾器表84,因而它將顯示在系統狀態顯示器46上。7名稱業務讀取HCI主文件并檢查重名。1.若找不到,則把所述組件增加到本地名稱業務儲存庫。2.若找到并且所有信息都相同,則不要求進一步的操作。3.若找到并且信息不相同,則把一個重復組件別名事件寫到應用程序登錄庫。所述重復事件配置入系統事件過濾器表84,因而它將顯示在系統狀態顯示器46上。以下方案不提供有關OPC客戶到SES40的連接的細節。反之,所述方案試圖提供關于WMI到SES40人機對話的背景材料。SES40預定SEP52實例建立和修改事件。SEP52是一個同步儲存庫,利用SRP56來保持它的系統事件同步儲存庫與指定激活目錄范圍內所有計算機的同步。如表12所描繪的,SES40負責向分配用的GOPC-AE對象提交SEP事件。表12事件事件的描述1SES40啟動和完成所有要求的初始化,包括包含所述狀態數據庫的GOPC-AE對象的建立。2SES40通過winmgmt(WMI)服務器連接到SEP52。3SES40為實例建立和修改事件進行登錄。4SES40列舉所有現存事件實例并通過所述OPC-AE接口更新狀態數據庫。SES40預定SEP52實例建立和修改事件。SEP52是一個同步儲存庫,利用SRP56來保持它的系統事件同步儲存庫與指定的激活目錄范圍內所有計算機的同步。所述范圍由登錄庫設置用UNC格式激活目錄路徑定義。通往TPS域的路徑表明,所有計算機與所述TPS域組織單元(OU)同步。通往所述域水平的路徑會同步所述域內的所有SEP,而不管TPS域OU。所述設置是通過可以從系統狀態顯示器46或本地配置實用程序配置頁發出。用戶發出系統狀態顯示器46。所有計算機都應該是在線的,因為必須如表13所描繪的,執行登錄庫配置。表13事件事件的描述1用戶右擊將會成為系統狀態顯示范圍框內SESHCI組件主機并在所述環境菜單中選擇HCI組件項目的節點。2顯示HCI組件配置頁。*3選擇所述組件的別名。.4恢復HCI組件配置頁中的字段。5用戶改變HCI組件特定信息的字段(檢查點文件位置、OPC方法訪問保障代理服務器文檔)。6用戶啟用DSS特定的配置頁,并改變所述多址通信范圍字段。頂層同步將把″*″路徑用作IP多址通信組內所有節點同步所得的的范圍。7用戶選擇應用。8數據寫入關于主宰所述組件的節點的登錄庫。在將要主宰所述組件的節點上,自動地建立代理服務器文檔。現將如圖2-4所示,針對利用相同節點帶有附加的特征的計算機34的系統20描述第二推薦實施例。過濾器配置工具系統事件過濾器Snap-in86包括系統狀態顯示器46和用于此目的的輸入裝置,諸如鍵盤和/或鼠標(未示出),用于包含把NT-AE通知轉換為OPC-AE通知用的附加信息的NT-AE用戶項目及其特性,例如,所述特性可以包括事件類型(狀態,簡單的或跟蹤的)、事件源(用正文和NT事件登錄插入字符串識別)、事件嚴重性(預定值或登錄值)、事件類別(注意表26中的示例性值)、事件狀態(注意表26中的示例性值)、事件子狀態(根據事件狀態)和事件屬性(作為由事件類別定義的)。用戶使用系統事件過濾器Snap-in86來把NT事件輸入到過濾器表84中,將傳送NT事件的通知以便轉換為OPC-AE通知。參見圖6-10,系統事件過濾器Snap-in86在系統狀態顯示器46把指定事件類型(圖6)、事件類別(圖7)、事件狀態(圖8)、事件子狀態(圖9)和事件屬性(圖10)用的一系列選擇框呈現給用戶。系統事件服務器(SES)的邏輯設計再一次參見圖4,SES40是一個被HCI管理的組件,把NT-AE通知陳列為OPC-AE通知。SES40陳列OPC-AE順從接口,任何OPC-AE客戶可以使用所述OPC-AE順從接口來采集系統事件。SES40利用SEP52來從預定的一套計算機采集事件。SEP52根據過濾器文件接收登錄并過濾這些通知的NT-AE通知。增強通過過濾器的NT-AE通知,使其具有產生OPC-AE通知所要求的附加質量。SEP52維護與事件有關的激活狀態的映射,并提供superceded狀態事件的自動的去激活。SES40負責把事件數據包裝為OPC-AE通知并用以維護本地狀態數據庫,用來跟蹤與狀態有關的OPC-AE的狀態。在啟動過程中,SEP52將掃描所有從節點啟動以來或上一次sEP52停止以來登錄的所有事件,以便初始化本地狀態數據庫,來包括有效的條件狀態。然后SEP52將開始處理來自Microsoft窗口NTEventLog提供器的改變通知。事件擴張系統事件過濾器Snap-in86用來定義建立OPC-AE通知時擴張NT登錄事件信息所要求的附加的數據。系統事件過濾器Snap-in86將配置OPC-AE類型、所述事件是否為isACKable(可應答)以及所述項目是否與狀態有關,把所述狀態指定給所述事件。若一個事件定義為與狀態有關的事件類型,則所述事件可以是單穩態事件(非激活)或希望相應的返回正常事件(激活)的條件。識別為ACTIVE(激活)的事件必須具有一個定義為去激活所述條件的相關事件。給每一個事件類型指定一個OPC-AE嚴重性,因為窗口事件嚴重性不一定直接轉換為要求的OPC-AE嚴重性。系統事件過濾器Snap-in86將用來指定一個OPC-AE嚴重性值。若指定零(0)的嚴重性,則指定給原來的NT-AE的事件嚴重性將轉換為預先指定的OPC-AE嚴重性值。所述SES不利用子狀態。條件子狀態將是條件名稱的拷貝。事件維護SES40預定由SEP52產生的事件。SEP52負責用SRP56維護在所有節點上都同步的與狀態有關的事件的狀態。所有與狀態有關的事件和它們的狀態的改變,包括確認,對于包含在配置的激活目錄范圍內所有SEP都是全局的。所有新的狀態和現存狀態的改變都將產生OPCConditionEventNotifications。被包含的ChangeMask將反映狀態已經改變的值。當狀態被應答時,SEP52將產生跟蹤事件。新的與狀態有關的事件由SES40從SEP52接收作為WMIInstanceCreationEvents。確認和激活狀態中的改變反映在WMIInstanceModificationEvents中。當一個狀態既被應答又被清除時,將提交WMI刪除事件。簡單事件和跟蹤事件都作為WMI的ExtrinsicEvents提交,并且不包含在任何儲存庫中。對于簡單事件和跟蹤事件,沒有同步(對所有偵聽的節點在多址通信遞送以外),并且不維護狀態。這些事件將只由在它們的遞送的時候連接的客戶接收。SEPTPSSysEvt類用來維護與狀態有關的事件。TPSSysEvtExt類用來提交簡單事件和跟蹤事件。事件恢復在SEP52儲存庫中維護所有狀態事件。使SEP52儲存庫在它的配置范圍之內跨越所有節點同步。任何失去它的網絡連接或失敗的節點都將在狀態被修正時用一個同步視圖刷新它的視圖。狀態事件由產生所述事件的節點維護。在同步的過程中被識別為來源于與當前本地狀態不匹配的本地節點的狀態事件將被SEP52去激活。簡單事件和跟蹤事件不被同步并且不是可復原的。條件狀態維護是由所述登錄的節點執行的。然后狀態與所有其它節點同步。失去節點的任何結合都將影響所述事件視圖的有效性。條件時間戳是以條件激活時間為依據的并且由于恢復刷新而改變。瀏覽SES40支持分層次瀏覽。地區由包含在配置SEP52范圍之內的激活目錄對象定義。層次區域文法與激活目錄取名習慣處于相反的順序并且必須互換位置。區域名稱格式將是\\RootArea\area1\area2,其中RootArea,area1和area2是激活目錄域或組織單元對象,并且area1包含area2,而RootArea包含area1。SES40將在定義在SEP52的范圍之內的激活目錄水平開始,在激活目錄樹行走。將維護所述結構的一個內部表述,以便支持瀏覽并且檢測激活目錄配置的改變。SES40源一般定義在SEP52的激活目錄范圍的地區內的計算機和組件。源于計算機但是已經沒有特定項目來報告的事件將使用登錄計算機的名稱作為源。駐留于計算機內的關于事件的特定項目使用源名稱格式計算機.組件(例如.computer1.PKSSERVER01)。包含的計算機將作為源增加到每一個區域。其它源(例如,采用源名稱習慣源.組件的被管理組件)將被動態地增加,作為激活事件接收。使能/禁止關于一個SES的使能或禁止事件將不影響其它SES,不論它們是處于相同的還是處于不同的范圍。若使用重定向管理器(RDM),則RDM將使能或禁止冗余的SES連接的地區和源,維護同步視圖。使能/禁止對于連接到相同SES的所有客戶都是全局的。SES子系統SES40利用HCIRuntime(運行期程序)以提供OPC兼容的報警和事件(AE)接口。HCIRuntime和GOPCAE對象執行所有OPC客戶通信和狀態數據庫維護。裝置特定服務器功能是在SES裝置特定對象(DSSObject)實現的。所述對象將創建事件管理對象的單一的實例,它將從SEP52檢索事件并把SEP52事件通知轉送到GOPC-AE。另外,單一的對象將維護激活目錄配置的視圖,用以定義服務器地區和包含的源。SES中的數據庫將維護以下的查閱映射表14SES內部映射層次區域和源映射代表激活目錄容器(地區)的對象層次映射和所包含的事件源。所述映射將用于區域中的區域和區域中的源。它還將在完成激活目錄的定期掃描以識別激活目錄層次中的改變時使用。OPC事件cookie到WMI的映射當OPC客戶應答事件時用以查閱WMI實例簽名事件引導。維護以下性能計數器來監視SES40的操作。表15-SES性能計數器計數器類型描述連接的客戶RAWCOUNT當前客戶連接數目(非備用的DDssObject實例)登錄的事件RAWCOUNT服務器啟動以來處理的事件數目每秒登錄的事件COUNTER上一秒處理的事件數目(從登錄的事件推算)登錄的狀態事件RAWCOUNT服務器啟動以來處理的ACKable事件數目登錄的狀態事件COUNTER上一秒處理的ACKable事件數目(從登錄的ACKable事件推算)登錄的簡單事件RAWCOUNT接收的簡單事件每秒登錄的簡單事件COUNTER上一秒接收的簡單事件數目(從登錄的簡單事件推算)登錄的跟蹤事件RAWCOUNT上一秒接收的跟蹤事件數目每秒登錄的跟蹤事件COUNTER上一秒處理的跟蹤事件數目(從登錄的跟蹤事件推算)系統事件服務器(SES)的接口參見圖5,SES40向OPC-AE客戶80陳列多個接口90。在內部,SES40實現一個裝置特定服務器對象,表示為通過標準HCIRuntime定義的接口與HCIRuntime組件92通信的DSS對象94。DSS對象94提供所有服務器特定實現。系統事件服務器DSS對象實現IHciDeviceSpecific-Common,IHciDeviceSpecific-AE,IHciDeviceSpecific-Security,IHciDeviceSpecificCounters和IHciDevice接口。所述HCIRuntimeIHciSink_Common接口用來通知區域和源可用性改變的客戶(通過HCIRuntime)。所述IHciSink_AEGOPC_AE接口用來通知新的和修改事件的客戶。定期(4秒)”心跳”測試包通知發送到所述接口以驗證所述GOPC_AE/SES連接狀態。當所述DSS連接無效(丟失”心跳”測試包或訪問差錯)時,SES40登錄事件(在過濾器表中識別為DEVCOMMERROR條件),識別DSS通信差錯,并且反映由CAS48通過IHciDeviCe::GetDeviceStatus()取出的狀態中的問題。所述GOPC_AEIHciSink_AE接口上的”心跳”測試包將停止,以此識別對GOPC_AE對象的丟失。當連接恢復原狀時,SES40登錄另一個事件(在過濾器表84識別為非激活DEVCOMMERROR狀態)并更新裝置狀態。“心跳”測試包將恢復到由GOPC_AE對SESDSS對象Refresh()方法觸發一個調用的GOPC_AE。SESDSS對象本身將從恢復的SEP連接列舉所有實例,并將用bRefresh標志置位把每一個實例遞送到GOPC_AE阱接口。SESDSS對象94實現任選的IHciDevice接口,它向所述組件經營業務(CAS)陳列GetDeviceStatus()方法。SES40實現所述接口來反映事件通知連接的狀態。將返回一個失效裝置狀態,以表明所述SEP連接并未建立或當前是斷開的。類似地,SEP52將通過差錯通知向SRP直至SES40反映它的連接中的差錯。由GetDeviceStatus()返回的裝置信息字段將包含字符串,描述相關的連接問題。SESDSS對象94還實現IHciDeviceSpecificCounters接口,以支持DSS性能計數器。服務器事件登錄是利用HsiEventLogAPI執行的。SES40的HCI組件配置值將利用ITpsRegistry接口取出。第二實施例的邏輯設計方案被管理組件改變狀態為FAILED(失效)狀態。如表16所描繪的,必須給OPC客戶產生一個狀態事件。表16-產生狀態事件-新的激活報警事件事件的描述1被管理組件進入FAILED(失效)狀態。2CAS48檢測到狀態改變并登錄一個窗口事件。3SEP52業務得到所述事件的通知并檢驗它的過濾器表。4在過濾器表中組件狀態改變事件被識別為激活狀態有關事件。5建立一個TPS_SysEvt類實例并把過濾器表信息設置在事件對象內。6SEP52檢查它的源到狀態事件的映射,找當前激活的狀態事件沒有找到。7SEP52創建一個__InstanceCreationEvent并插入TPS_SysEvt實例。它把InstanceCreationEvent送到SRP56。8SRP56把InstanceCreationEvent分發(多址通信)到所有SEP52。9A11SEP都收到所述事件并通知所連接的客戶所述收到的事件。10SES40收到所述事件通知。11所述事件信息轉換為OPC-AE事件通知,并發送到預定的OPC-AE客戶。被管理組件先前已經輸入WARNING(報警)狀態。這產生激活狀態報警。所述組件現在過渡到FAILED狀態,生成新的激活狀態。如表17所描繪的,以前的狀態不再激活。表17-產生狀態事件-存在激活報警事件事件的描述1被管理組件從WARNING(報警)狀態轉入失效狀態。2CAS48檢測到狀態改變并登錄一個窗口事件。3SEP52業務得到所述事件的通知并檢驗它的過濾器表。4在過濾器表中組件狀態改變事件被識別為激活狀態有關事件。5建立ATPS_SysEvt類對象并設置過濾器表信息。(EventB)6SEP52檢查它的源到狀態事件的映射,找一個當前激活的狀態事件;找到WARNING狀態報警。(EventA)7(EventA)TPS_SysEvt對象包含WARNING狀態報警(在步驟6找到)設置為INACTIVE(非激活)。8(EventA)SEP52建立InstanceModificationEvent并插入被去激活的WARNING狀態事件TPS_SysEvt對象。9(EventA)sEP52向SRP56發出修改事件,所述事件分發到所有SEP。10(EventA)所有SEP52收到所述事件并把所述收到的事件通知所連接的客戶(SES)。11(EventA)SES40收到所述被去激活WARNING狀態事件通知。12(EventA)被去激活事件信息轉換為OPPC-AE事件通知,并發送到預定的OPC客戶13(EventB)SEP52創建一個InstanceCreationEvent并插入新的FAILED狀態事件TPS_SysEvt對象。14(EventB)SEP52向SRP56發出InstanceCreationEvent,把所述事件分發給所有SEP52。15(EventB)所有SEP52收到所述事件并把所述收到的事件通知所連接的客戶(SES)。16(EventB)SES40收到被去激活WARNING狀態事件通知。17(EventB)把所述事件信息轉換為OPC-AEevent通知并發送給預定的OPC客戶。重新起動失效的被管理組件(存在激活事件),并最后過渡到IDLE(空閑)狀態,如表18所描繪的,在所述系統事件過濾器表中標識為返回正常狀態。表18-產生狀態事件未確認事件上返回正常事件事件的描述1被管理組件從WARNING(報警)狀態轉入IDLE(無效)狀態。2CAS48檢測到狀態改變并登錄窗口事件。3SEP52業務得到所述事件的通知并檢驗它的過濾器表。4在過濾器表中組件狀態改變事件被識別為非激活Unacknowledgeable(不可應答)狀態有關事件。5SEP52為一個當前激活的狀態事件,檢查它的源到狀態事件的映射;找到所述FAILED(失效)的狀態報警。6把包含所述FAILED狀態報警的TPS_SysEvt對象設置為INACTIVE(非激活)。7SEP52建立InstanceModificationEvent并插入所述被去激活的FAILED狀態事件TPS_SysEvt對象。8SEP52向SRP56發出修改事件,把所述事件分發給所有SEP52。9所有SEP52收到所述事件并把所述收到的事件通知所連接的客戶(SES)。10SES40收到所述被去激活WARNING狀態事件通知。11把所述被去激活事件信息轉換為OPC-AE事件通知并發送給預定的OPC客戶。事件可以從下面系統狀態顯示器46或另一個SES(通過SEP)或從上面通過HCIRuntime接口應答。在所述方案中,通過SEP52產生所述確認。操作是相同的,不管確認是否來自另一個SES節點所述系統管理顯示器。表19-從SEP應答狀態事件-事件是激活的事件事件的描述1用戶從系統狀態顯示器ACK(應答)一個事件。系統狀態顯示器46引發SEP52上的ACK方法。2SEP52查看它的儲存庫中的被引用的TPS_SysEvt對象并把ACK后的特性設置為TRUE。把ModificationSource特性設置為本地計算機名稱。3SEP52為被引用的事件對象產生InstanceModificationEvent并插入修改后的TPS_SysEvt對象。4SEP52登錄一個解釋為跟蹤事件的NT事件,以跟蹤所述狀態確認。5SEP52向SRP56發出修改事件,把所述事件分發給所有SEP52。6所有SEP52收到所述事件并把所述收到的事件通知所連接的客戶。7SES40收到所述事件修改通知。8把所述被應答的事件信息轉換為OPC-AE事件通知并發送給預定的OPC客戶。如表20所描繪的,OPC客戶應答激活狀態事件。表20-從OPC客戶應答狀態事件-事件是激活的事件事件的描述1用戶從OPC客戶應答事件。2SES40用cookie查看WMI事件簽名。3SES40為在步驟2取出的所述事件簽名引發所述SEPACK()方法。4SEP52改變所述指定事件ACK和ModificationSource屬性。5SEP52產生InstanceModificationEvent,與修改后的TPS_SysEvt繁殖它并將其發送到SRP56。6SRP56把所述修改事件發送到所有SEP52。7SEP52收到所述改變通知,更新本地儲存庫并把所述改變轉送到SES40。8SES40收到所述改變通知。9因為所述ACK狀態已經修改,所以沒有改變并且不給OPC產生事件。注意從冗余的SES透視圖查看,所述ACK狀態是不同的,并對冗余的服務器上的所述OPC客戶和連接到所述冗余的服務器的任何客戶產生狀態改變。如表21所描繪的,通過所述SEPWMI接口(例如,系統狀態顯示器46)應答非激活狀態事件。從所述事件儲存庫刪除所述非激活的應答了的事件。表21-從所述SEP應答狀態事件-事件是非激活的事件事件的描述1用戶從系統狀態顯示器ACK(應答)事件。系統狀態顯示器46引發SEP52上的ACK方法。2SEP52查看被引用的TPS_SysEvt對象,并注意,所述事件是非激活的。把所述ACKed特性設置為TRUE。ModificationSource特性設置為所述本地計算機名稱。3因為所述事件現在既是非激活又是應答了的,所以SEP52產生__InstanceDeletionEvent并插入所述修改后的TPS_SysEvt對象。4SEP52登錄解釋為跟蹤事件的NT事件,以跟蹤所述狀態確認。5SEP52向SRP56發出所述事件,把所述事件分發給所有SEP52。6所有SEP52都收到所述事件并把所述收到的事件通知所連接的客戶(SES)。從所述SEP事件儲存庫刪除所述TPS_SysEvt對象。7SES40收到所述事件刪除通知。8把所述被應答的事件信息轉換為OPC-AE事件通知并發送給預定的OPC客戶。OPC客戶應答非激活狀態事件。如表22所描繪的,從所述事件儲存庫刪除所述非激活的、應答了的事件。表22-從OPC客戶應答狀態事件,事件是非激活的事件事件的描述1用戶從一個OPC客戶應答一個事件。2SES40用cookie查看WMI事件簽名。3SES40利用上述的取出的事件簽名引發所述SEP的ACK()方法。4SEP52查看被引用的TPS_SysEvt對象,并注意,所述事件是非激活的。把所述ACKed特性設置為TRUE。ModificationSource特性設置為所述本地計算機名稱。5所述事件現在既是非激活又是應答了的,所以SEP52產生__InstanceDeletionEvent并插入修改后的TPS_SysEvt對象。6SEP52登錄一個解釋為跟蹤事件的NT事件,以跟蹤所述狀態確認。7SEP52向SRP56發出所述事件,把所述事件分發給所有SEP52。8所有SEP52都收到所述事件并把收到的事件通知連接的客戶(SES)。theSEP52從它們的儲存庫刪除TPSSysEvt對象。9SES40收到所述事件刪除通知。10因為所述狀態已經刪除,所以不給所述OPC客戶產生事件。注意從冗余的SES透視圖看,所述ACK狀態是不同的,并給冗余服務器上的OPC客戶和連接到所述冗余的服務器的任何客戶產生狀態改變。重新啟動FAILED(失效)的被管理組件,并最后過渡到IDLE(空閑)狀態,后者在系統事件過濾器表中被識別為返回到正常狀態事件,如表23所描繪的。表23-產生狀態事件,應答事件返回到正常事件事件的描述1被管理組件轉入IDLE(空閑)狀態。2CAS48檢測到狀態改變并登錄一個窗口事件。3SEP52業務得到所述事件的通知并檢驗它的過濾器表。4在過濾器表中組件狀態改變事件被識別為Inactive(非激活)Unacknowledgeable(不可應答)狀態有關事件。5SEP52為當前激活的狀態事件,檢查它的源到狀態事件的映射;找到所述FAILED(失效)的狀態報警。6把包含FAILED狀態報警的TPS_SysEvt對象設置為INACTIVE(非激活)。7因為所述事件現在既是非激活又是應答了的,所以SEP52產生InstanceDeletionEvent并插入所述修改后的TPS_SysEvt對象。8SEP52登錄解釋為跟蹤事件的NT事件,以跟蹤所述狀態確認。9SEP52向SRP56發出所述事件,后者把所述事件分發給所有SEP52。10所有SEP52都收到所述事件并把收到的事件通知所連接的客戶(SES)。SEP52從它們的儲存庫刪除TPS_SysEvt對象。11SES40收到所述事件刪除通知。12把所述被應答的事件信息轉換為OPC-AE事件通知,并發送給預定的OPC客戶。如表24所描繪的,OPC客戶創建所述SES實例,并預定事件通知。表24-用于SES事件的OPC客戶簽名事件事件的描述1OPC客戶創建SES40的out-of-process實例。2建立SES40服務器對象并把所述接口排列到out-of-process客戶。3所述OPC客戶創建進程內IOPCEventSink對象。4所述OPC客戶從對lOPCEventServer::CreateEventSubscription()的調用取得IConnectionPointContainer接口。5所述OPC客戶通過客戶IOPCEventSink對象的未知點,調用SES40的IconnectionPointContiner接口上的Advise()。6從CreateEventSubscription()返回IOPCEventSubscriptionMgt2接口用的OPC客戶Qls。7所述OPC客戶調用IOPCEventSubscriptionMgt2::SetKeepAlive()來設置回調接口在”心跳”測試包的保持存活(keep-alive)的時間間隔。8SES40利用所述lOPCEventSink::OnEvent()方法把新的事件發送到所述客戶。若當所述keep-alive大致要過去時沒有產生事件,將產生一個keep-alive。OPC客戶創建SES40實例,并預定事件通知。如表25所描繪的,丟失回調連接。表25-OPC客戶丟失與SES的連接事件事件的描述1OPC客戶預定如表27的SES事件,OPC客戶為SES事件簽名。2網絡或其它通信異常地打破到所連接的OPC客戶的回調連接。3在特定的keep-alive周期已經過去之前OPC客戶沒有收到事件。4所述OPC客戶Unadvise()所述連接連接點(在實例中,問題的確是回調問題)。5若Unadvise成功,則所述客戶可以選擇再預定事件。6若Unadvise失敗,則所述客戶應釋放他的SES引用,并再一次完成完全的再連接。注意在大部分情況下,對于任何回調問題,這是推薦的操作。釋放和再實例化所述SES的一個新的實例將保證從它的超高速緩存存儲器把老接口DCOM存入硬盤。魯棒性和安全性HCIRuntime通過OPC-AE回調實現”心跳”測試包。客戶使用所述”心跳”測試包來檢驗回調連接是否在運行。SES40利用重定向管理器(RDM)支持冗余操作。SES40本身不知道它是在冗余的配置下運行的。用戶的責任是配置RDM來訪問冗余的SES40服務器并保證所述配置在兩個SES40實例之間是兼容的。當一個SES服務器或所述節點時,為RDM把它正在運行、失效、失效時間寫入文檔。因為事件儲存庫的實際的狀態是在所有節點上的同步的SEP52儲存庫中維護的,所以來自直接站的SES視圖將是相同的。通過WMI到所述系統事件提供器的連接由通用模數IstClnt.dll維護。丟失連接、試圖再連接的通知和恢復連接的通知都由nstClnt.dll內實現的線程處理。一旦所述服務器由于任何原因失效,它將在客戶試圖引用它時自動地重新啟動。系統事件過濾器Snap-in系統事件過濾器Snap-in86工具是一個Microsoft管理控制臺Snap-in,它提供定義與OPC報警和事件的相關的附加的事件屬性的機制。所述系統事件過濾器Snap-in86提供一種在窗口登錄庫登錄時選擇WindowsNT事件種類文件的機制。事件源從與消息種類相關的清單選取并顯示包含在所述種類中的事件清單。WindowsNT事件作為OPC事件的配置是通過配置”Wizard(向導)″執行的。OPC-AE屬性由與下表26事件類型、類別和狀態名一致的配置向導指定。表26-事件類型、類別和狀態名事件事件類別狀態名稱描述類型/類別ID有關狀態與狀態有關的事件是可以指定給激活狀態的可應答事件。若把激活狀態指定給事件,則必須識別另一個當所述源返回正常時登錄的事件。系統報警/SYSERRORACKable,INACTIVE系統差0x3003錯對特定組件、節點或網絡不可隔離。源是發出所述狀態的節點的名稱。NODEERRORACKable,INACTIVE計算機平臺(節點)差錯。源是節點名稱。NETERRORACKable,ACTIVE/INACTIVE網絡差錯。源是用發出所述狀態的節點的名稱定義的網絡或網絡(段)名稱。NETREDERRORACKable,ACTIVE/INACTIVE冗余對的一個鏈路的問題。源是用發出狀態的節點的名稱定義的鏈路名稱。MANCOMPERRORACKable,ACTIVE被管理組件差錯。源是用節點名稱定義的組件名稱或別名。組件名稱用的插入字符串是強制性的。為了去激活,登錄用相同的狀態名稱登錄,但設置為NOTACKable和INACTIVE。SYSCOMPERRORACKable,INACTIVE類屬系統組件差錯。源是用節點名稱限定的組件名稱。組件名稱用的插入字符串是強制性的。任何有效的狀態NOTACKable,INACTIVE名稱設置為NOT無差錯/返回正常狀態。ACKABLE和所述狀態不直接作為OPCINACTIVE事件傳送,但用來改變所述命名的狀態事件為非激活。SEP用相同源和狀態名稱搜索儲存庫,尋找激活狀態。若找到,則用非激活狀態更新所述事件。若找不到激活狀態,則不產生OPC事件。OPC_SERVER_DEVCOMMERRORACKable,ACTIVE,所述OPCERROR/服務器被禁止與其相關的0x3004裝置通信。源是用節點名稱限定的服務器名稱或別名。還必須指定相應的通信恢復狀態。簡單的NOTACKable,INACTIVE簡單事件是可以寫入歷史但不在事件觀看器上顯示的單次事件。裝置失效/0x1001系統.消息/0x1003跟蹤的NOTACKable,INACTIVE跟蹤事件是不保存在系統事件儲存庫的單次事件。過程改變/0x2001用交互用戶或控制應用程序修改過程參數。這包括SEP登錄狀態跟蹤事件。系統改變/0x2002配置改變以外的系統改變,例如操作員登錄或注銷。系統配置/0x2003系統配置的改變,例如給TPS域加節點(當檢測到AD改變時由SES登錄)。OPC事件嚴重性必須指定為每一個事件類型,因為Windows或WindowsNT事件嚴重性不一定直接轉換為要求的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文檔中。盡管我們已經表示和描述了按照我們的發明的一些實施例,但是將會清楚地理解,許多改變對本專業技術人員是顯而易見的。因此我們不想限于所表示和描述的這些細節,而是想要顯示落入后附的權利要求書的范圍內的所有改變和修改。權利要求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的可應答性和激活或非激活的狀態。全文摘要公開了一種在窗口環境中運行,向OPC客戶提供事件通知的系統。對在該系統中產生的NT事件進行過濾,并將其轉換為OPC格式,以便呈現給OPC客戶。轉換后的NT事件通知包括產生該NT事件的來源的指定。該系統包括過濾器配置工具,它允許輸入用戶定義的過濾器判據和轉換信息。轉換信息包括來源指定、事件嚴重性、事件類型(簡單的、跟蹤的和狀態的)、事件類別、事件狀態、事件子狀態和事件屬性。文檔編號G06F9/46GK1678998SQ03820625公開日2005年10月5日申請日期2003年6月30日優先權日2002年6月28日發明者J·M·普拉爾,J·T·烏爾索,H·J·林申請人:霍尼韋爾國際公司