專利名稱:外部事件處理器系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)和分布式部件管理系統(tǒng)(EMS),以及可用于使響應(yīng)網(wǎng)絡(luò)協(xié)議的變化和/或新的/修改的網(wǎng)絡(luò)部件(NE)的加入時(shí),EMS的維護(hù)開銷降至最小的軟件技術(shù)。
概述(0100)如圖1(0100)中所示,本發(fā)明適用于存在通過事件通道(0120)與目標(biāo)事件用戶/接收器(0130)通信的一個(gè)或多個(gè)事件供給者/源(0110)的情況。許多分布式軟件解決方案借助事件交換大量的數(shù)據(jù)。必須從初始事件供給者(0110)高效地把這些事件傳送給最終的事件用戶(0130)。在復(fù)雜系統(tǒng)中,傳送機(jī)構(gòu)通常是一組事件通道(0120)。通道的數(shù)目和事件內(nèi)容取決于應(yīng)用。為了完成事件傳送體系結(jié)構(gòu),初始事件供給者(0110)和事件用戶(0130)必須和事件通道(0120)相連。
本發(fā)明具體涉及如同在外部事件處理器(EEP)(0140)中實(shí)現(xiàn)的事件處理的變換和接口管理方面。所述EEP組件提供可直接與網(wǎng)絡(luò)部件(0111、0112)和/或主應(yīng)用軟件(0150)通信的外部接口,從而協(xié)調(diào)事件源(0110)和事件接收器(0130)之間通過一個(gè)或多個(gè)事件通道(0120)的事件通信。
例證應(yīng)用(0200)如圖2中所示,本發(fā)明可應(yīng)用于存在一個(gè)或多個(gè)電信網(wǎng)絡(luò)(0210、0220)的情形,所述電信網(wǎng)絡(luò)(0210、0220)可包括來自不同賣主的設(shè)備,也可不包括來自不同賣主的設(shè)備。這些網(wǎng)絡(luò)內(nèi)使用的網(wǎng)絡(luò)設(shè)備部件(NE)(0215、0216、0225、0226)可采取多種形式,包括(但不限于)交換傳動(dòng)裝置(switch gear)、多路復(fù)用器等。這些網(wǎng)絡(luò)部件(0215、0216、0225、0226)通常由一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)(0211、0221)控制,所述一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)(0211、0221)由可保存在各種存儲(chǔ)介質(zhì)上的計(jì)算機(jī)軟件(0212、0222)控制。該計(jì)算機(jī)軟件通常采取控制并監(jiān)控網(wǎng)絡(luò)部件(0215、0216、0225、0226)的一個(gè)或多個(gè)網(wǎng)絡(luò)部件管理器(0213、0214、0223、0224)的形式,所述網(wǎng)絡(luò)部件(0215、0216、0225、0226)包括電信網(wǎng)絡(luò)(0210、0220)的組成組件。在這些情況下,本發(fā)明可特別涉及事件傳送體系結(jié)構(gòu)(ETA)的實(shí)現(xiàn),因?yàn)樗鸵粋€(gè)或多個(gè)電信網(wǎng)絡(luò)(0210、0220)的環(huán)境內(nèi)的各種網(wǎng)絡(luò)部件(0215、0216、0225、0226)的整體控制和監(jiān)控相關(guān)。
服務(wù)于多個(gè)事件用戶的這些不同事件傳送需要是一項(xiàng)困難的任務(wù)。一種典型的方法是在單個(gè)應(yīng)用程序組件中滿足這些要求,所述單個(gè)應(yīng)用程序組件還用于管理其它基本(但是和事件無關(guān)的)子例程(function)。這種“一體化”方法導(dǎo)致應(yīng)付需求變化方面較高的開發(fā)費(fèi)用、較高的維護(hù)費(fèi)用和較低的靈活性。這是因?yàn)樗惺录魉蜋?quán)能與其它所有子例程耦合在一起,所有權(quán)能在一個(gè)組件中的緣故。
由于在事件傳送子例程組和其它子例程組之間必定是封閉、連續(xù)并且高度集成的開發(fā),因此軟件開發(fā)費(fèi)用較高。為了滿足事件傳送要求,軟件設(shè)計(jì)通常影響組件的外部接口,其持久機(jī)構(gòu),其內(nèi)部配置,組件中線程的應(yīng)用以及實(shí)現(xiàn)技術(shù)的選擇。這些選擇中的每一種都會(huì)和由與事件無關(guān)的子例程驅(qū)動(dòng)的其它組件設(shè)計(jì)決策沖突。為了調(diào)和這些(可能沖突的)選擇,必須進(jìn)行更多的工作。這導(dǎo)致費(fèi)用更高。另外還導(dǎo)致與事件傳送相關(guān)的設(shè)計(jì)決策和其它各個(gè)子例程的設(shè)計(jì)決策之間的高度耦合。
由于初始軟件設(shè)計(jì)的復(fù)雜性,任意變化將導(dǎo)致和較簡(jiǎn)單設(shè)計(jì)相比更高的維護(hù)費(fèi)用。更壞的是,由于過度耦合的緣故,即使事件傳送要求方面的細(xì)微變化都需要改寫與事件無關(guān)的其它組件設(shè)計(jì)選擇。
最后,使事件傳送子例程和所有其它子例程耦合在一起的整個(gè)復(fù)合組件極不易于改變。假定新的客戶程序希望接收事件,但是需要使用不同于其它客戶程序的外部接口。在初始的封閉的耦合設(shè)計(jì)的條件下,這種新要求甚至不可實(shí)現(xiàn)。如果這樣,則僅僅對(duì)于這種新的事件傳送特征,就必須產(chǎn)生初始軟件組件的新版本軟件組件。隨后,必須替換該組件的各種安裝版本,以便該新特征可用。通常這要求停止正在運(yùn)行的組件并重啟新版本的軟件組件。不幸的是,僅僅為了改變事件傳送特征,就必須停止所有其它子例程。在服務(wù)于任務(wù)關(guān)鍵性業(yè)務(wù)需要(mission-critical business needs)的大型系統(tǒng)中,這是極不可取的。
從根本上來說,問題是如何以把必需的事件傳送特征和所有其它網(wǎng)絡(luò)管理子例程分離的方式,在軟件內(nèi)最好地實(shí)現(xiàn)必需的事件傳送特征。
現(xiàn)有的針對(duì)該問題的最佳解決方案是在單獨(dú)的軟件包中隔離事件傳送軟件實(shí)現(xiàn)。軟件包是獨(dú)立文件或一組文件中的成組專用軟件功能。主應(yīng)用程序通過應(yīng)用編程接口(API)訪問該軟件包。通過把事件傳送特征封裝到單獨(dú)的軟件包中,減少了這些子例程和主應(yīng)用程序的其它子例程之間的耦合。
對(duì)于現(xiàn)有解決方案來說,事件傳送的驅(qū)動(dòng)要求需要事件傳送軟件包中的關(guān)鍵設(shè)計(jì)決策,所述關(guān)鍵設(shè)計(jì)決策影響使用事件傳送軟件包的主應(yīng)用軟件?,F(xiàn)有解決方案要求主應(yīng)用軟件和事件傳送軟件包在相同的軟件過程中。從而,事件傳送軟件包中影響該過程的決策也會(huì)影響主應(yīng)用軟件。關(guān)于持久存儲(chǔ)、控制的穿線(threading),外部接口,其它第三方產(chǎn)品的使用,其它程序庫或軟件包的使用的決策會(huì)整體影響該單個(gè)軟件過程。事件傳送軟件包的這許多決策不得不和主應(yīng)用軟件的那些決策結(jié)合起來,否則該單個(gè)軟件過程將不能正確地工作。
此外,如果事件傳送方面的新要求改變了軟件包,則不得不修改所有這些設(shè)計(jì)決策。一旦完成新的設(shè)計(jì),則必須產(chǎn)生新版本的主應(yīng)用軟件。隨后必須利用該新版本的主應(yīng)用軟件替換現(xiàn)有的已安裝的應(yīng)用程序。這種方法不能克服必須停止并且隨后重啟主應(yīng)用程序的問題。
某些軟件組裝技術(shù)足夠復(fù)雜,這里可獨(dú)立于使用軟件包的應(yīng)用程序調(diào)度軟件包。但是只有當(dāng)軟件包與主應(yīng)用軟件的耦合較弱時(shí),才可使用這種獨(dú)立調(diào)度。由于上述耦合原因的緣故,對(duì)于提供事件傳送特征的軟件來說,這種情況較罕見。
(2)減少事件傳送和主應(yīng)用軟件之間的耦合。
(3)允許在不需要軟件系統(tǒng)重啟和/或應(yīng)用程序系統(tǒng)中斷的情況下更新事件傳送機(jī)構(gòu)。
(4)降低大型復(fù)雜和/或任務(wù)關(guān)鍵系統(tǒng)應(yīng)用程序中的調(diào)度復(fù)雜性。
(5)把事件處理功能分成單獨(dú)的軟件組件,所述單獨(dú)的軟件組件封裝邏輯上緊密結(jié)合在一起的一組必要事件傳送功能。
(6)把關(guān)于事件的所有策略封裝到單一軟件組件中。對(duì)這些策略的后續(xù)改變只會(huì)影響該單一組件。
(7)允許獨(dú)立于其它框架組件,開發(fā)并測(cè)試涉及事件的功能。這一特征使得能夠并行形成類屬部件管理(GEM)框架和后續(xù)測(cè)試。
(8)在不必改變其它GEM組件的情況下增加新的與事件相關(guān)的接口。
這些目的不應(yīng)被理解為對(duì)本發(fā)明的限制,一般而言,這些目的部分或者完全由下述各節(jié)中說明的公開發(fā)明實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員毫無疑問能夠選擇所公開的本發(fā)明的各個(gè)方面,實(shí)現(xiàn)上述目的的任意組合。
本發(fā)明與現(xiàn)有技術(shù)的不同之處在于不是把事件傳送特征封裝到單獨(dú)的軟件包中,而是把事件傳送執(zhí)行過程放入單獨(dú)的軟件過程中。這打破了事件傳送特征和主應(yīng)用程序軟件中那些特征之間的執(zhí)行設(shè)計(jì)耦合。通過備有單獨(dú)的過程,與事件傳送相關(guān)的任意設(shè)計(jì)決策不會(huì)影響主軟件過程;只會(huì)影響事件傳送組件的過程。從而新組件封裝與事件傳送相關(guān)的所有執(zhí)行設(shè)計(jì)決策。
提供與該新組件的外部接口,從而主應(yīng)用軟件可發(fā)送來自于網(wǎng)絡(luò)部件的基本事件。新組件負(fù)責(zé)把接收的事件轉(zhuǎn)換成客戶程序事件用戶所需的格式和所要求的類型。新組件向客戶程序提供所需的外部接口,以便登記接收事件。
通過把所有事件傳送特征放入在其自身的軟件過程中運(yùn)行的獨(dú)立組件,消除了所有直接耦合。可完全獨(dú)立于主應(yīng)用程序?qū)崿F(xiàn)獨(dú)立組件。避免了與現(xiàn)有技術(shù)產(chǎn)生的直接耦合相關(guān)的所有問題。
本發(fā)明避免了現(xiàn)有解決方案的問題以及它們的相關(guān)費(fèi)用??捎?jì)量的費(fèi)用隨著具體的事件傳送要求而變化。在要求極小的某些情況下,這些費(fèi)用很小,本發(fā)明的成本效率并不高。當(dāng)需要具有不同接口和基本不同接口要求的多種事件用戶時(shí),本發(fā)明的成本效率將很高。
此外,作為單獨(dú)的軟件過程,可在不影響其它網(wǎng)絡(luò)管理子例程的情況下現(xiàn)場(chǎng)更新本發(fā)明。實(shí)際上,可在幾乎不影響對(duì)于事件用戶的事件傳送的情況下,停止并以其新形式重新啟動(dòng)本發(fā)明。
本發(fā)明的唯一缺陷在于要求開發(fā)并使用單獨(dú)的軟件組件。新軟件組件的開發(fā)費(fèi)用和開發(fā)單獨(dú)軟件包的費(fèi)用大體相當(dāng),開發(fā)單獨(dú)軟件包是關(guān)于所解決的事件傳送問題的一種現(xiàn)有解決方案。但是這種解決方案的開發(fā)費(fèi)用高于單獨(dú)的軟件組件的開發(fā)費(fèi)用。必須以任意其它應(yīng)用軟件的形式在其運(yùn)行期環(huán)境中管理并控制軟件組件。但是這些費(fèi)用僅僅是遞增的,因?yàn)橐脖仨毎堰@些能力提供給主應(yīng)用程序。
為了更充分地理解本發(fā)明的優(yōu)點(diǎn),應(yīng)結(jié)合附圖參考下述詳細(xì)說明,其中圖1圖解說明本發(fā)明的通用系統(tǒng)概述;圖2圖解說明本發(fā)明如何通過軟件控制,連接到包括計(jì)算機(jī)監(jiān)控、配置等的集成的多賣主網(wǎng)絡(luò)管理系統(tǒng)的例證體系結(jié)構(gòu);圖3圖解說明利用本發(fā)明的通用系統(tǒng)應(yīng)用程序;圖4圖解說明本發(fā)明的優(yōu)選實(shí)施例的內(nèi)部功能結(jié)構(gòu),并且圖解說明例證應(yīng)用程序如何連接事件調(diào)度程序、事件轉(zhuǎn)換程序和事件監(jiān)聽程序,以便按照恰當(dāng)?shù)母袷桨呀邮盏氖录魉徒o客戶程序;圖5舉例說明應(yīng)用程序包中公共可見的主要類程;圖6舉例說明調(diào)度模塊中公共可見的主要類程;圖7舉例說明ECOM客戶程序模塊中公共可見的主要類程;圖8舉例說明GEM客戶程序模塊中公共可見的主要類程;圖9舉例說明轉(zhuǎn)換模塊中公共可見的主要類程;圖10舉例說明傳送模塊中公共可見的主要類程;圖11圖解說明例證應(yīng)用程序的功能行為的概述;圖12圖解說明例證應(yīng)用程序如何讀取其配置文件并初始化其內(nèi)部權(quán)能;圖13圖解說明例證應(yīng)用程序如何初始化其內(nèi)部事件轉(zhuǎn)換權(quán)能并使之與內(nèi)部事件傳送機(jī)構(gòu)相連;圖14圖解說明例證應(yīng)用程序如何初始化內(nèi)部事件傳送結(jié)構(gòu);圖15圖解說明例證應(yīng)用程序如何處理客戶程序登記,以便接收事件;圖16圖解說明例證應(yīng)用程序如何接收事件、處理事件并且把事件發(fā)送給登記的客戶程序。
下面將參考優(yōu)選實(shí)施例說明本申請(qǐng)的許多創(chuàng)新教導(dǎo),其中這些創(chuàng)新教導(dǎo)被應(yīng)用于分布式外部事件處理系統(tǒng)和方法的特定問題。但是,應(yīng)明白本實(shí)施例只是創(chuàng)新教導(dǎo)的眾多有利應(yīng)用的一個(gè)例子。一般說來,本申請(qǐng)說明書中作出的陳述并不必然限定所要求的各項(xiàng)發(fā)明中的任意一項(xiàng)發(fā)明。此外,某些陳述可應(yīng)用于某些發(fā)明特征,但是不能應(yīng)用于其它發(fā)明特征。
定義在本文獻(xiàn)的討論中,采用下述定義系統(tǒng)方框/程序步驟可利用例證的系統(tǒng)方框圖和程序流程圖適當(dāng)?shù)卣f明本發(fā)明。雖然這些內(nèi)容足以向本領(lǐng)域的普通技術(shù)人員說明本發(fā)明的教導(dǎo),但是它們不應(yīng)被嚴(yán)格地理解為限定本發(fā)明的范圍。本領(lǐng)域的技術(shù)人員將意識(shí)到在不損失通用性的情況下可組合和重新排列系統(tǒng)方框圖,可以增加或減去程序步驟,并且可對(duì)程序步驟重新排列,獲得相同的效果而不喪失通用性。從而應(yīng)明白在所附的例證系統(tǒng)方框圖和程序流程圖中說明的本發(fā)明只是出于講授目的,根據(jù)預(yù)期的應(yīng)用目的,本領(lǐng)域的技術(shù)人員可改寫本發(fā)明。
個(gè)人計(jì)算機(jī)在這里的說明中,將利用個(gè)人計(jì)算機(jī)(PC)技術(shù)來舉例說明本發(fā)明的教導(dǎo)。術(shù)語“個(gè)人計(jì)算機(jī)”應(yīng)理解為可用于實(shí)現(xiàn)本發(fā)明的教導(dǎo)的任意計(jì)算裝置,本發(fā)明的范圍并不僅僅局限于個(gè)人計(jì)算機(jī)應(yīng)用。
因特網(wǎng)/內(nèi)聯(lián)網(wǎng)在這里的說明中,術(shù)語因特網(wǎng)和內(nèi)聯(lián)網(wǎng)用于表示任意網(wǎng)絡(luò)通信系統(tǒng)或環(huán)境。通常術(shù)語內(nèi)聯(lián)網(wǎng)將表示相對(duì)于指定系統(tǒng)或用戶的本地通信,因特網(wǎng)描述更遠(yuǎn)距離的本地通信。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到在現(xiàn)代通信網(wǎng)絡(luò)的環(huán)境中,這些術(shù)語是任意的,決不是對(duì)本發(fā)明范圍的限制。
本發(fā)明明確預(yù)計(jì)在某些實(shí)現(xiàn)中,GUI開發(fā)框架(和/或其運(yùn)行期組件)將通過因特網(wǎng)與用于驅(qū)動(dòng)GUI的數(shù)據(jù)通信。從而,驅(qū)動(dòng)用戶接口的應(yīng)用程序?qū)Ⅰv留在一個(gè)計(jì)算機(jī)系統(tǒng)上,并且用于呈現(xiàn)和控制的數(shù)據(jù)可包含在另一計(jì)算機(jī)系統(tǒng)上的某處,并且借助任意數(shù)目的連網(wǎng)協(xié)議訪問這些數(shù)據(jù)。
應(yīng)用程序編程接口(API)雖然本發(fā)明部分利用諸如軟件開發(fā)工具包之類標(biāo)準(zhǔn)應(yīng)用程序編程接口(API)實(shí)現(xiàn),但是并不要求利用這些工具實(shí)現(xiàn)本發(fā)明。另外注意本發(fā)明的結(jié)構(gòu)可合并到標(biāo)準(zhǔn)工具包中,所述標(biāo)準(zhǔn)工具包可以集成到API框架中,也可不集成到API框架中,供標(biāo)準(zhǔn)軟件開發(fā)框架之用。
操作系統(tǒng)另外,雖然本發(fā)明被實(shí)現(xiàn)成優(yōu)先使用各種Microsoft操作系統(tǒng)(包括各種WindowsTM變型),不應(yīng)被解釋把本發(fā)明的范圍局限于這些特殊的軟件組件。特別地,可在其中一些可包含圖形用戶界面的各種系統(tǒng)中實(shí)現(xiàn)這里教導(dǎo)的系統(tǒng)和方法。這些系統(tǒng)的一些例子包括HP-UXTM、LINUXTM、SOLARIS和UNIXTM(及其變型)等等。
數(shù)據(jù)結(jié)構(gòu)在一些優(yōu)選實(shí)施例中,可以用各種數(shù)據(jù)結(jié)構(gòu)體現(xiàn)本發(fā)明。但是,這里說明的這種數(shù)據(jù)結(jié)構(gòu)的形式只是示范性的。本領(lǐng)域的技術(shù)人員會(huì)很快認(rèn)識(shí)到各種各樣其它數(shù)據(jù)結(jié)構(gòu)可同樣用在本申請(qǐng)中。于是,這些包含的任何數(shù)據(jù)結(jié)構(gòu)都不應(yīng)被理解為對(duì)本發(fā)明范圍的限制。
通信介質(zhì)本發(fā)明可體現(xiàn)為通過各種通信介質(zhì)實(shí)現(xiàn)事件通道信息的傳送。但是用于傳輸這里描述的傳送的信號(hào)格式只是示范性的。本領(lǐng)域的技術(shù)人員會(huì)很快認(rèn)識(shí)到各種其它通信介質(zhì)可同樣用在本申請(qǐng)中。于是,這里包含的任何通信介質(zhì)不應(yīng)被理解為對(duì)本發(fā)明范圍的限制。
CORBA在某些優(yōu)選實(shí)施例中可利用面向CORBA對(duì)象的框架實(shí)現(xiàn)本發(fā)明。但是,這里描述的實(shí)現(xiàn)方式只是示范性的。本領(lǐng)域的技術(shù)人員會(huì)很快認(rèn)識(shí)到各種其它分布式面向?qū)ο蟮目蚣芸赏瑯佑迷诒旧暾?qǐng)中。于是,這里包含的任何框架不應(yīng)被理解為對(duì)本發(fā)明范圍的限制。
通過查閱CORBA標(biāo)準(zhǔn)服務(wù)文件(ftp//ftp.omg.org/pub/docs/formal/98-12-01.pdf的“The Common Object Request BrokerArchitecture and Specification”)可獲得在本發(fā)明的各個(gè)例證實(shí)施例的環(huán)境中使用的命名服務(wù)的詳細(xì)技術(shù)說明。
通過查閱1998 Object Management Group(OMG)Notificationservices,Joint Revised Submission,1998年11月,OMG TC Documenttelecom/98-11-01,BEA Systems等(ftp//ftp.omg.org/pub/docs/formal/)可獲得在本發(fā)明的各個(gè)例證實(shí)施例內(nèi)使用的通知的詳細(xì)技術(shù)說明。
應(yīng)用程序概述與發(fā)明的關(guān)系的概述在關(guān)于例證應(yīng)用程序的下述說明中,具體組件與圖1中的發(fā)明環(huán)境相關(guān)。在例證的應(yīng)用程序中,GEM服務(wù)程序是主應(yīng)用軟件(0150)。它接收來自網(wǎng)絡(luò)部件(0111、0112)的事件。它把這些事件發(fā)送給EEP(0140)的例證應(yīng)用程序。EEP隨后使用事件通道(0120)把針對(duì)具體客戶程序重新格式化后的接收事件發(fā)送給最終的事件用戶客戶程序(0130)。就例證的應(yīng)用程序來說,存在三種事件客戶程序,即GEM客戶程序、ECOM客戶程序和ALMAP客戶程序。通常每種客戶程序有一個(gè)以上的實(shí)例和EEP相連。圖3以類似于圖1的方式表示了例證應(yīng)用程序的具體細(xì)節(jié)。
獨(dú)立應(yīng)用程序體現(xiàn)為外部事件處理器(EEP)的本發(fā)明一般被實(shí)現(xiàn)為獨(dú)立的應(yīng)用程序。該應(yīng)用程序通常在由GEM和事件客戶程序用戶所使用的同一傳送平臺(tái)上運(yùn)行。例證的EEP應(yīng)用程序使用CORBA接口提供對(duì)其服務(wù)的訪問。每當(dāng)起動(dòng)或停止其相關(guān)的GEM服務(wù)程序時(shí),EEP就被啟動(dòng)和停止。
必要的事件接口EEP具有用于各種事件用戶客戶程序GEM客戶程序、ECOM客戶程序和ALMAP客戶程序的公共接口。每種事件用戶客戶程序使用EEP從GEM服務(wù)程序登記接收事件。接收的事件呈具體客戶程序預(yù)定的形式。GEM服務(wù)程序把事件發(fā)送給EEP,以便處理并發(fā)送給登記的客戶程序。
操作行為在運(yùn)行期,EEP從GEM服務(wù)程序接收事件。這些事件具有支持GEM服務(wù)程序要求的結(jié)構(gòu)。當(dāng)事件起因于物理網(wǎng)絡(luò)部件(NE)上的活動(dòng)時(shí),事件將包含專用于發(fā)端NE的數(shù)據(jù)。當(dāng)收到該事件時(shí),EEP把呈現(xiàn)有GEM格式的事件發(fā)送給登記的GEM客戶程序。
除此之外,EEP把事件轉(zhuǎn)換并重新格式化成ECOM專用事件結(jié)構(gòu)。就例證應(yīng)用程序來說,轉(zhuǎn)換是把事件從NE專用數(shù)據(jù)轉(zhuǎn)換成ECOM類屬數(shù)據(jù)所必需的。隨后EEP把新轉(zhuǎn)換并且重新格式化后的事件發(fā)送給登記的ECOM客戶程序。EEP根據(jù)在登記過程中由ECOM客戶程序確定的任意篩選及服務(wù)質(zhì)量參數(shù)完成上述工作。
最后,EEP可轉(zhuǎn)換并過濾接收的事件,以便傳送給登記的ALMAP客戶程序。
結(jié)構(gòu)概述(0300)圖3(0300)圖解說明了外部事件處理器(EEP)的體系結(jié)構(gòu)。利用矩形表示了不是本例證應(yīng)用程序一部分的其它外部應(yīng)用程序。它們包括GEM服務(wù)程序(0320);三種特定的事件客戶程序GEM客戶程序(0331)、ECOM客戶程序(0332)和ALMAP客戶程序(0333)和提供EEP使用的傳送事件的事件通道實(shí)體的通知服務(wù)(0360)。
如圖3(0300)中所示,事件客戶程序和GEM服務(wù)程序通過利用不同的外部接口訪問EEP功能。每種客戶程序有一個(gè)外部接口,GEM服務(wù)程序本身有一個(gè)外部接口。這些接口都專用于各個(gè)外部應(yīng)用程序。EEP封裝如何實(shí)現(xiàn)這些外部接口的細(xì)節(jié)。對(duì)信息來說,在通知服務(wù)(0360)中還表示了用于各個(gè)事件通道的外部接口。
對(duì)于所有事件客戶程序來說,EEP(0310)的存在是透明的。這些客戶程序只知道客戶程序?qū)S霉步涌凇T诒纠C實(shí)施例中,只有GEM服務(wù)程序自己(0320)才明確知道EEP。
圖3(0300)還圖解說明了例證應(yīng)用程序中事件的流程。網(wǎng)絡(luò)部件(0340)產(chǎn)生事件并把這些事件發(fā)送給GEM服務(wù)程序(0320)。通過利用GEM服務(wù)程序外部接口(0350),這些事件被發(fā)送給EEP(0310)。EEP根據(jù)需要通過過濾、轉(zhuǎn)換并發(fā)送事件,處理這些事件。最后,EEP把這些事件發(fā)送給所需的事件通道(0370),以便傳送給事件客戶程序。
具體的體系結(jié)構(gòu)(0410)圖4(0410)圖解說明了EEP過程本身的例證內(nèi)部體系結(jié)構(gòu)。在本例證實(shí)施例中,EEP被表示為一組軟件包以及軟件包之間的相關(guān)性。每個(gè)軟件包代表EEP內(nèi)的一個(gè)軟件模塊,并且每個(gè)模塊包含設(shè)計(jì)成為該模塊提供必需特征的特定類程。
下面給出各個(gè)模塊的詳細(xì)說明。
應(yīng)用程序模塊(EEP∷app)(0420)該模塊整體代表該應(yīng)用程序。它包括啟動(dòng)、停止和控制該應(yīng)用程序的整個(gè)序列所需的類程。
主要職責(zé)1.包含主例程,所述主例程處理配置參數(shù)(配置文件和命令行變?cè)?;初始化其它模塊;及進(jìn)入主處理循環(huán)。
2.根據(jù)請(qǐng)求關(guān)閉應(yīng)用程序。
3.為GEM服務(wù)程序提供EEP外部CORBA接口EventProcessor的實(shí)現(xiàn)(EventProcessorImpl)。
4.構(gòu)造EEP使用的一組內(nèi)部IEventDispatchers,以便把接收的GEM服務(wù)程序事件轉(zhuǎn)移到事件客戶程序事件通道。
合作者1.由應(yīng)用程序模塊初始化的所有其它模塊。
2.根據(jù)需要產(chǎn)生路由事件的IEventDispatcher的實(shí)例的調(diào)度模塊(0490)。
公用程序模塊(EEP∷util)(0430)該模塊包括其它軟件包使用的所有類屬公用子例程。對(duì)于理解本例證應(yīng)用程序來說關(guān)于該模塊的更多細(xì)節(jié)是不必要的。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到這種應(yīng)用子例程取決于用于建立該例證應(yīng)用程序的實(shí)際實(shí)現(xiàn)技術(shù)。
公用模塊(EEP∷common)(0440)該模塊(0440)包含由所有其它模塊共同使用的類程。對(duì)于理解本例證應(yīng)用程序來說關(guān)于該模塊的更多細(xì)節(jié)是不必要的。本領(lǐng)域的技術(shù)人員將理解當(dāng)需要公用類程時(shí),把這些公用類程封閉到諸如公用模塊之類的模塊中。
公用模塊(0440)包含由EEP中所有其它內(nèi)部模塊使用的實(shí)現(xiàn)專用類程。該模塊的內(nèi)容根據(jù)用于構(gòu)造EEP的實(shí)現(xiàn)技術(shù)的變化而變化。本領(lǐng)域的技術(shù)人員毫無疑問將認(rèn)識(shí)到要使用的專用類程隨所采用的具體實(shí)現(xiàn)方法而變化。
GEM客戶程序模塊( EEPgemClient)(0451)本模塊(0451)包含為GEM客戶程序提供公共外部接口必需的所有類程。
主要職責(zé)1.提供GEM客戶程序外部接口的實(shí)現(xiàn)從而包括線程策略。發(fā)布GEM客戶程序訪問所必需的接口。
2.調(diào)用傳送模塊提供登記、斷開和過濾功能。
合作者1.依賴于用于初始化的app模塊(0420)和訪問公共資源的公用模塊(0440)。
2.依賴于把事件傳送給實(shí)際Gem客戶程序的實(shí)際實(shí)現(xiàn)的傳送模塊(0470)。
3.依賴于把Gem服務(wù)程序事件轉(zhuǎn)換成Gem客戶程序格式化報(bào)警事件的轉(zhuǎn)換模塊(0470)。
ECOM客戶程序模塊(EEP∷ecomClient)(0452)本模塊(0452)向ECOM客戶程序提供和GEM客戶程序模塊(0451)向GEM客戶程序所提供的完全相同的功能。其主要職責(zé)和合作者都和GEM客戶程序模塊(0451)相同,但是它是用于ECOM客戶程序而不是用于GEM客戶程序。
ALMAP客戶程序模塊(EEP∷almapClient)(0453)本模塊(0453)向ALMAP客戶程序提供和GEM客戶程序模塊(0451)向GEM客戶程序所提供的完全相同的功能。其主要職責(zé)和合作者都和GEM客戶程序模塊(0451)相同,但是它是用于ALMAP客戶程序而不是用于GEM客戶程序。
GEM服務(wù)程序模塊(EEP∷gemserver)(0460)本模塊向GEM服務(wù)程序(0320)提供外部接口的實(shí)現(xiàn)。
主要職責(zé)1.產(chǎn)生GEM服務(wù)程序外部接口的實(shí)現(xiàn)并且當(dāng)GEM服務(wù)程序需要時(shí)發(fā)布該外部接口。
2.提供用于登記GEM服務(wù)程序的特征。
3.提供用于從GEM服務(wù)程序接收事件,并且把這些事件發(fā)送給EEP的其它各個(gè)部分的特征。
合作者1.使用公用程序util(0430)和公用common(0440)模塊訪問應(yīng)用程序資源。
2.使用調(diào)度模塊dispath發(fā)送接收的事件。
傳送模塊(EEP∷transport)(0470)本模塊(0470)提供把事件從EEP傳送給事件客戶程序的方法。它訪問事件通道的外部通知服務(wù)(0360)。它配置這些事件通道并且把這些事件通道和內(nèi)部EEP事件調(diào)度機(jī)構(gòu)相連。它產(chǎn)生各種事件客戶程序的專用事件傳送配置(事件通道,其在EEP內(nèi)的配置和連接)。以事件的客戶程序記錄器(register)的形式產(chǎn)生該配置。
合作者1.使用調(diào)度模塊(0490)連接事件客戶程序的事件通道。
2.使用公用程序(0430)和公用(0440)模塊訪問應(yīng)用程序資源。
3.使用通知服務(wù)(0360)安排事件的實(shí)際傳送。
4.由事件客戶程序模塊、gemClient(0451)、ecomClient(0452)和almapClient(0453)用于指示哪些客戶程序需要哪些事件,事件流程的過濾和QoS設(shè)置和控制。
轉(zhuǎn)換模塊(EEP∷translate)(0480)本模塊(0480)包含可把來自GEM服務(wù)程序(0360)的事件轉(zhuǎn)換成各種事件客戶程序的專用格式化事件的類程。在運(yùn)行期,這些類程的實(shí)例由app模塊(0420)產(chǎn)生,包裝到事件監(jiān)聽程序中,并且被登記以便監(jiān)聽來自GEM服務(wù)程序的事件。當(dāng)收到事件時(shí),轉(zhuǎn)換程序把接收的事件轉(zhuǎn)換成特定事件客戶程序的恰當(dāng)格式,并重新發(fā)送該事件。
調(diào)度模塊(EEP∷dispatch)(0490)本模塊(0490)提供把從GEM服務(wù)程序(0460)接收的事件內(nèi)部發(fā)送給不同的客戶程序轉(zhuǎn)換程序,隨后發(fā)送給不同的客戶程序調(diào)度程序,最后發(fā)送給各個(gè)客戶程序的事件通道的方法。按照這種方式,為各個(gè)客戶程序轉(zhuǎn)換接收的事件,并且根據(jù)需要傳送接收的事件。
主要職責(zé)1.接收發(fā)送給它的事件,并且根據(jù)事件類型把該事件發(fā)送給登記的監(jiān)聽程序。
2.根據(jù)事件類型,登記/不登記事件的監(jiān)聽程序。
3.為事件調(diào)度提供線程策略。
合作者1.由gemServer(0460)用于調(diào)度從GEM服務(wù)程序接收的事件。
2.由傳送模塊(0470)用于登記客戶程序格式化事件的監(jiān)聽程序。這些監(jiān)聽程序與客戶程序?qū)S檬录ǖ老噙B。
3.由轉(zhuǎn)換模塊(0480)用于登記將被轉(zhuǎn)換的事件的監(jiān)聽程序。
4.由轉(zhuǎn)換模塊(0480)用于把轉(zhuǎn)換后的事件發(fā)送給客戶程序?qū)S谜{(diào)度程序。
詳細(xì)的類程說明為了實(shí)現(xiàn)例證應(yīng)用程序中的各個(gè)模塊,需要許多邏輯類程。本節(jié)更詳細(xì)地描述各個(gè)模塊的主要類程。本領(lǐng)域的技術(shù)人員可利用本節(jié)的信息來理解EEP是如何內(nèi)部實(shí)現(xiàn)其功能的。
應(yīng)用程序模塊(0500)圖5(0500)圖解說明了應(yīng)用程序模塊中主要的公開可見的類程的例證類程圖。
EEPServer(0510)該靜態(tài)類程代表EEP應(yīng)用程序本身。它具有主方法的執(zhí)行過程。主方法調(diào)用其它靜態(tài)方法,所述其它靜態(tài)方法按照應(yīng)用程序特有的順序初始化其它軟件包。其方法包括·main—運(yùn)行該應(yīng)用程序的靜態(tài)子例程。調(diào)用其它靜態(tài)子例程并且隨后運(yùn)行ORB(通過對(duì)ORB_Manager∷runORB()的調(diào)用)。
·readConfiguration—讀取配置數(shù)據(jù)并建立包含配置數(shù)據(jù)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的靜態(tài)子例程。
initializeInternals—按照邏輯順序初始化應(yīng)用程序中的其它軟件包靜態(tài)子例程。由于相關(guān)性的緣故,邏輯順序?yàn)閡til,common,dispatch,translate,transport,client modules和gemServer模塊。
setup—提供建立應(yīng)用程序以支持GEM服務(wù)程序和所有EEP事件客戶程序(ALMAP、ECOM、Gem)的專用靜態(tài)子例程。
EventProcessorImpl(0520)·該類程是實(shí)現(xiàn)EEP的EventProcessor接口的單一類程。只有GEM服務(wù)程序調(diào)用該接口。其方法包括·register_EML/NE—向EEP登記新的EML應(yīng)用程序,或者網(wǎng)絡(luò)部件。這允許Gem服務(wù)程序通知EEP它準(zhǔn)備好在EML/NE層的操作。另外,如果Gem服務(wù)程序需要來自于EEP的任意數(shù)據(jù),該操作可返回該數(shù)據(jù)。
·unregister_NE-register_NE操作的逆操作。當(dāng)GEM服務(wù)程序不再管理特定NE時(shí),調(diào)用unregister_NE。
·push_alarm_event,push_gem_event,push_ECOM_event—這些操作允許GEM服務(wù)程序把NE接收的事件轉(zhuǎn)發(fā)給EEP,以便進(jìn)行后續(xù)處理。存在涉及不同類型事件的多個(gè)操作。
調(diào)度(0600)圖6(0600)圖解說明調(diào)度模塊中主要的公開可見的類程的例證類程圖。這些類程定義不同的事件類型,在EEP應(yīng)用程序內(nèi)調(diào)度事件的方法和一旦事件被調(diào)度,處理事件的類程。這些類程主要被傳送模塊用于把事件給予內(nèi)部事件傳送結(jié)構(gòu),所述內(nèi)部事件傳送結(jié)構(gòu)被構(gòu)造成把事件傳送給EEP客戶程序。
EEPEvent(0610)該類程(0610)封裝該應(yīng)用程序的不同形式的事件。利用事件的各個(gè)實(shí)例產(chǎn)生單個(gè)實(shí)例。該類程事件類型,并且提供獲取事件和關(guān)于事件的細(xì)節(jié)的操作。其方法是·new—產(chǎn)生包裝所提供的事件的實(shí)例。
·getEventType()—返回代表其事件的EEP_EventType實(shí)例。
·getEvent()—返回事件。
·getID()—返回事件的身份值。
·toString()—返回描述其事件及其事件類型的字符串。
EEPEventType(0620)該類程表示EEP的已知的不同事件類型。對(duì)于從GEM服務(wù)程序發(fā)送給EEP的每種唯一的事件類型以及對(duì)于發(fā)送給EEP客戶程序的每種唯一的事件類型,存在一例這種類程。借助關(guān)于該類程的公共、靜態(tài)方法可訪問這些實(shí)例。提供內(nèi)部獲取事件數(shù)據(jù)的其它方法。
IEventDispatcher(0630)該接口用于EEP內(nèi)事件的調(diào)度(安排順序、計(jì)時(shí)和目的地)。在EEP中,該接口的執(zhí)行過程被用于“直接通信(direct traffic)”,根據(jù)需要把從GEM服務(wù)程序接收的事件發(fā)送給不同的目的地。該接口利用事件監(jiān)聽程序表示事件的目的地。監(jiān)聽程序向IEventDispatcher登記,以便接收事件。IEventDispatcher的數(shù)目,哪些事件被發(fā)送給IEventDispatcher以及哪些事件監(jiān)聽程序被登記確定任意事件的傳送路徑。
該接口定義預(yù)訂和不預(yù)訂事件監(jiān)聽程序的方法。另外還向供給者提供把事件調(diào)度給監(jiān)聽程序的方法?;痉椒ㄊ恰ispatch()—恰當(dāng)?shù)匕咽录{(diào)度給所有登記的事件監(jiān)聽程序(訂戶)。
·subscribe()—使監(jiān)聽程序預(yù)訂要求IEventDispatcher調(diào)度的事件。監(jiān)聽程序可提供它希望接收的一系列事件類型。
·unsubscribe()—從所有事件類型的訂戶名單中除去該監(jiān)聽程序。
圖6(0600)中IEventDispatcher的具體實(shí)現(xiàn)被表示為SimpleEventDispatcher(0660)。
IEventListener(0640)這是定義處理事件的方法的接口。每當(dāng)IEventDispatcher接收一項(xiàng)事件,并且該事件的類型和監(jiān)聽程序請(qǐng)求的類型相符時(shí),IEventDispatcher調(diào)用該方法?;痉椒ㄊ恰andleEvent()—處理其類型和監(jiān)聽程序預(yù)訂的類型相符的事件。
IDeMuxEventListener(0650)這是擴(kuò)展IEventListener的更復(fù)雜的監(jiān)聽程序。為每種特定的事件類型提供了一種處理方法。和這種監(jiān)聽程序一起可同時(shí)采用更復(fù)雜的內(nèi)部事件傳送方案。例證的應(yīng)用程序使用這種監(jiān)聽程序把特定的事件類型傳送給特定類型的客戶程序。
ECOM客戶程序(0700)圖7(0700)圖解說明了ECOM客戶程序模塊中主要的公開可見的類程的例證類程圖。ECOM客戶程序模塊是例證應(yīng)用程序中幾個(gè)客戶程序包之一。該應(yīng)用程序?yàn)榭蓮腅EP接收事件的各個(gè)客戶程序提供客戶程序?qū)S媚K。每個(gè)客戶程序模塊封裝客戶程序記錄器如何接收事件的細(xì)節(jié)。為此目的提供了客戶程序?qū)S媒涌诓⒂蓛?nèi)部類程管理。
EventAdminImpl(0710)該類程(0710)提供用于獲取EventSupplier實(shí)例的特定ECOM客戶程序接口的執(zhí)行過程,這是ECOM客戶程序記錄器怎樣接收事件。new操作被用于在AdminFactory的控制下產(chǎn)生該類程的實(shí)例。register操作由ECOM客戶程序用于登記事件。
AdminFactory(0720)AdminFactory類程(0720)是用于管理ECOM客戶程序?qū)S妙惓痰膬?nèi)部類程。例證的應(yīng)用程序使用該類程建立并配置客戶程序?qū)S媒涌?。就ECOM客戶程序來說,該類程提供被EEP內(nèi)部程序調(diào)用的操作,從而導(dǎo)致產(chǎn)生和破壞ECOM接口。列舉的操作對(duì)應(yīng)于關(guān)于EventProcessorImpl(0520)描述的那些操作。register_EML/NE操作導(dǎo)致產(chǎn)生EventAdminImpl的實(shí)例,unregister_NE導(dǎo)致破壞EventAdminImpl實(shí)例。
未顯示的是被app模塊調(diào)用的初始化該特定事件客戶程序模塊的init操作。對(duì)于ECOM客戶程序來說,init行為是產(chǎn)生內(nèi)部支持對(duì)象,圖中未表示這些內(nèi)部支持對(duì)象。
對(duì)于產(chǎn)生的各個(gè)ECOM專用接口,AdminFactory還與傳送模塊相互作用。這種相互作用導(dǎo)致產(chǎn)生客戶程序所需的客戶程序?qū)S檬录魉徒Y(jié)構(gòu)。
EventSupplierImpl(0730)該類程(0730)用于實(shí)現(xiàn)ECOM客戶程序?qū)S媒涌?,所述專用接口用于控制事件的流程。每次ECOM客戶程序調(diào)用針對(duì)EventAdminImpl類程的登記操作時(shí),產(chǎn)生這種類程的實(shí)例。該接口為客戶程序提供使事件用戶和供給者相連的操作以及控制相對(duì)于其的事件流程的操作。關(guān)鍵方法是·connect_structured_push_consumer()-連接客戶程序供給事件用戶和該客戶程序的事件流程。該步驟完成從GEM服務(wù)程序經(jīng)過EEP到最終的客戶程序事件用戶的事件流動(dòng)的路徑。
·suspend/resume()—這些操作允許客戶程序事件用戶停止和啟動(dòng)來自EEP的事件的流程。
·disconnect()—該操作允許客戶程序事件用戶告知EEP它不再關(guān)心事件。EEP釋放用于該特定客戶程序事件用戶的任意內(nèi)部資源,并且不再向其發(fā)送事件。
GEM客戶程序(0800)圖8(0800)圖解說明GEM客戶程序模塊中主要的公共可見的類程的例證類程圖。該類程具有用于GEM專用客戶程序接口的實(shí)現(xiàn)類程。存在使這些實(shí)現(xiàn)類程和傳送模塊中的事件傳送結(jié)構(gòu)相連的管理類程。
EventService(0810)該類程(0810)是EventNotifierImpl的實(shí)例的內(nèi)部管理類程。該類程由例證應(yīng)用程序用于初始化GEM客戶程序?qū)S媚K,產(chǎn)生并發(fā)布EventNotifierImpl的實(shí)例,并保存為各個(gè)GEM客戶程序產(chǎn)生的事件供給者的名單。另外,該類程聯(lián)系傳送模塊,從而觸發(fā)產(chǎn)生該客戶程序的內(nèi)部事件傳送結(jié)構(gòu)。其主要操作是·getInstance()—返回該類程的唯一實(shí)例。
·init()—利用應(yīng)用程序配置信息初始化gemClient模塊。該操作產(chǎn)生EventNotifierImpl的實(shí)例,激活EventNotifierImpl,并且發(fā)布GEM客戶程序預(yù)期的特定位置中的接口。其副作用是初始化特定GEM事件客戶程序類型的傳送模塊中的事件傳送結(jié)構(gòu)。
·creatSupplier()—這是每次EventNotifierImpl觸發(fā)它自己的creatSupplier操作時(shí)被調(diào)用的內(nèi)部操作。產(chǎn)生并初始化GemSupplierWraper的一個(gè)實(shí)例。這導(dǎo)致產(chǎn)生GemPushSupplierImpl的一個(gè)實(shí)例,并且最后被返回給調(diào)用GEM客戶程序。
EventNotifierImpl(0820)該類程(0820)提供用于登記事件的GEM客戶程序?qū)S媒涌诘膱?zhí)行過程。GEM客戶程序調(diào)用obtain_gem_push_supplier操作產(chǎn)生GemPushSupplierImpl的實(shí)例。后一實(shí)例被GEM客戶程序用于啟動(dòng)和停止事件的流程。圖中列舉的其它操作用于例證應(yīng)用程序的內(nèi)部用途。
GemSupplierWrapper(0830)
該類程(0830)管理GemPushSupplierImpl的各個(gè)實(shí)例。每次GEM客戶程序希望登記事件時(shí),EventService產(chǎn)生該類程的實(shí)例。該類程的各個(gè)實(shí)例產(chǎn)生GemPushSupplierImpl的實(shí)例,并且使之與傳送模塊提供的內(nèi)部事件傳送結(jié)構(gòu)相連。圖中列舉的操作用于例證應(yīng)用程序的內(nèi)部用途。
GemPushSupplierImpl(0840)該類程(0840)用于實(shí)現(xiàn)GEM客戶程序?qū)S媒涌冢摻涌谟糜诳刂剖录牧鞒?。該客戶程序?qū)S媒涌跒榭蛻舫绦蛱峁┻B接事件用戶和供給者的subscribe操作。從而,客戶程序完成從GEM服務(wù)程序通過EEP到達(dá)客戶程序的事件用戶的事件流程的路徑。提供unsubscribe操作,以便斷開該路徑,并且終止到客戶程序的事件用戶的事件流程。
Translate(0900)圖9(0900)圖解說明轉(zhuǎn)換模塊中主要的公共可見的類程的例證類程圖。IEventTranslator(0910)是具有兩種方法的接口。第一種方法,translate()復(fù)制參數(shù)EEE_Event,將其轉(zhuǎn)換成適當(dāng)?shù)母袷讲⒎祷谽EP_Event??蛇M(jìn)行其它工作,例如調(diào)度轉(zhuǎn)換后的事件。updateEventTypes()是供未來功能所用的方法。
實(shí)現(xiàn)IEventTranslator的具體類程包括·NullEventTranslator(0920)—該類程不對(duì)事件進(jìn)行任何處理。它可用于測(cè)試目的。
·ECOM_EventTranslator(0930)—該類程把接收的事件轉(zhuǎn)換成ECOM格式并且調(diào)度該事件。
·GemEventTranslator(0940)—該類程和ECOM_EventTranslator進(jìn)行相同的處理,不過把接收的事件轉(zhuǎn)換成GEM格式。
Transport(1000)圖10(1000)圖解說明傳送模塊中主要的公共可見的類程的例證類程圖。
EventTransport(1010)
這是一個(gè)單一類程(1010),該單一類程(1010)是該模塊的主要入口點(diǎn)。它由app模塊初始化。一旦被初始化,它根據(jù)傳送策略(如下所述)例示事件傳送的恰當(dāng)?shù)木唧w類程。所述策略由配置參數(shù)設(shè)置。通過關(guān)于EventTransport類程的方法獲得其它類程。
·init()—由具有應(yīng)用程序特性的app模塊調(diào)用。EventTransport將使用該應(yīng)用程序特性確定它將向客戶程序提供ISupplierFactory的哪些具體子類程。它將聯(lián)系通知服務(wù)(0360)獲得用于產(chǎn)生事件通道的接口。
·getClientSupplierFactory()—返回實(shí)現(xiàn)對(duì)于特定客戶程序來說恰當(dāng)?shù)腎SupplierFactory的具體類程的單一實(shí)例。對(duì)于每種客戶程序,存在ISupplierFactory的具體實(shí)現(xiàn)。恰當(dāng)?shù)目蛻舫绦蚰K使用ISupplierFactory產(chǎn)生與客戶程序?qū)S脙?nèi)部事件傳送結(jié)構(gòu)相連的供給者。
·shutdown()—當(dāng)通知應(yīng)用程序關(guān)閉時(shí)被app模塊調(diào)用。這允許傳送模塊執(zhí)行清除和持續(xù)操作。
ISupplier(1020)該接口(1020)表示事件的典型供給者。提供暫停、恢復(fù)和斷開供給者的操作。還提供確定供給者是被連接還是被暫停的詢問操作。
ISupplierFactory(1030)該接口(1030)表示ISuppliers的制造者(factory)。提供允許破壞ISupplier的操作。不存在用于產(chǎn)生ISuppliers的任何操作,因?yàn)檫@些操作預(yù)期為客戶程序類型專用操作,并且由實(shí)現(xiàn)該接口的具體類程提供,例如參見IGemSupplierFactory。
IECOMSupplierFactory(1040)該接口(1040)擴(kuò)展ISupplierFactory,并且用于特定的ECOM事件客戶程序。該接口由ecomClient模塊用于產(chǎn)生IECOM_Suppliers的實(shí)例。實(shí)現(xiàn)該接口的具體類程具有使用ECOM客戶程序?qū)S檬录魉徒Y(jié)構(gòu)的性能。
·creatSupplier()—在無任何設(shè)置的情況下產(chǎn)生并且隨后返回IECOM Supplier。當(dāng)ECOM客戶程序登記事件(參見下文)時(shí),ecomClient模塊調(diào)用該操作。該操作的副作用是在特定ECOM客戶程序的事件通道上產(chǎn)生供給者代理。
·register()—產(chǎn)生IECOM_Supplier,并且將其設(shè)置成只傳送所需事件類型,并且通過所提供的篩選程序的事件。返回新的供給者。該操作同樣由ecomClient模塊使用,并且具有上述相同的副作用。
IECOMSupplier(1050)該接口(1050)擴(kuò)展ISupplier,并且用于專用ECOM事件客戶程序。該接口由ECOM客戶程序用于連接它們的外部事件用戶和EEP,并且控制到達(dá)這些用戶的事件流程。實(shí)現(xiàn)該接口的具體類程具有構(gòu)建客戶程序?qū)S檬录魉徒Y(jié)構(gòu)并且傳送事件的性能。其方法是·connect()—使提供的客戶程序事件用戶和該供給者相連。一旦完成該調(diào)用,供給者將通過客戶程序?qū)S檬录魉徒Y(jié)構(gòu)把事件發(fā)送給用戶。
IGemSupplierFactory(1060)用于產(chǎn)生IGemSupplier對(duì)象的接口(1060)。除了用于GEM專用客戶程序類型之外,其用途、方法和IECOM_SupplierFactory相同。但是,該接口的具體實(shí)現(xiàn)專用于GEM客戶程序。
IGemSupplier(1070)用于特定GEM事件客戶程序的連接它們的外部事件用戶,并且接收和控制相對(duì)于用戶的事件的接口(1070)。其功能和IECOM_Supplier的功能相似,不過是支持不同客戶程序的不同接口。
例證應(yīng)用程序性能本節(jié)利用包括流程圖的各個(gè)
例證應(yīng)用程序如何實(shí)現(xiàn)其功能。
概述(1100)圖11(1100)圖解說明整個(gè)EEP應(yīng)用程序的例證邏輯流程。該例證應(yīng)用程序由計(jì)算機(jī)專用裝置啟動(dòng);本領(lǐng)域的技術(shù)人員熟悉實(shí)現(xiàn)此目的的多種方式。隨后該例證應(yīng)用程序讀取其配置文件并初始化其內(nèi)部模塊(1101)。所述應(yīng)用程序等待GEM服務(wù)程序?qū)ζ溥M(jìn)行登記(1102)。一旦完成登記,則EEP構(gòu)建并激活客戶程序?qū)S檬录魉蜋C(jī)構(gòu)(1103)。如果借助外部停機(jī)操作被激活(1104),則該應(yīng)用程序?qū)⑼顺?。在激活客戶程序?qū)S檬录魉蜋C(jī)構(gòu)(1103)之后,EEP可處理并接收來自GEM服務(wù)程序的事件(1105),以及處理事件客戶程序登記請(qǐng)求(1106)。在后續(xù)附圖中更詳細(xì)地說明各個(gè)節(jié)點(diǎn)。
讀取和初始化(1200)圖12(1200)描述讀取例證應(yīng)用程序的配置文件并且初始化該例證應(yīng)用程序的邏輯流程。按照特定的順序(1202、1203、1204、1205和1206)初始化圖4(0410)的不同結(jié)構(gòu)模塊。
公用模塊(1201)公用模塊的初始化(1201)導(dǎo)致所有其它模塊使用的所有公用對(duì)象的產(chǎn)生及可用性。作為該模塊的初始化的一部分,例證的應(yīng)用程序通過讀取配置文件和命令行選項(xiàng)產(chǎn)生其內(nèi)部配置數(shù)據(jù)。調(diào)度模塊(1202)調(diào)度模塊初始化(1202)由EEPServer∷setupDispatch操作完成。為GEM服務(wù)程序接收的事件產(chǎn)生一個(gè)IEventDispatcher。它被稱為MainAppDispatcher(0401)。同樣為EEP支持的各個(gè)特定事件客戶程序類型(0404)產(chǎn)生單一的IEventDispatcher。這樣,為GEM、ECOM和ALMAP事件客戶程序類型產(chǎn)生三種IEventDispatcher。相對(duì)于它所支持的具體客戶程序類型命名各個(gè)IEventDispatcher,即ECOM_EventDispatcher,GemEventDispatcher,AlampEventDispatcher。相對(duì)于具體的事件客戶程序,根據(jù)需要配置各個(gè)IEventDispatcher。
轉(zhuǎn)換模塊(1203、1300)轉(zhuǎn)換模塊由EEPServer∷setupTranslate操作初始化(1203)。圖13中更詳細(xì)地表示了該過程(1300)。為每種具體的事件客戶程序產(chǎn)生一個(gè)IEventTranslator(1301)。就例證應(yīng)用程序來說,為具體的ECOM、GEM和ALMAP客戶程序產(chǎn)生ECOM_EventTranslator、GemEventTranslator和NullEventTranslator。為各個(gè)IEventTranslator產(chǎn)生一個(gè)IEventListener(1302)。每個(gè)IEventTranslator通過IEventListener與MainAppDispatcher(0401)相連(1303)。這樣,GEM服務(wù)程序接收的任意事件被發(fā)送給各個(gè)轉(zhuǎn)換程序。每個(gè)IEventTranslator從公用模塊中的對(duì)象中查找其對(duì)應(yīng)的客戶程序?qū)S肐EventDispatcher(0404),并與其相連(1304)。這允許輸出將被發(fā)送給客戶程序?qū)S谜{(diào)度程序的轉(zhuǎn)換程序。
傳送模塊(1204)傳送模塊初始化由EventTransport∷init操作完成(1204)。在(1001)的說明中給出了該方法的行為。
客戶程序模塊(1205)為每種特定的事件客戶程序初始化客戶程序軟件包(1205)。各個(gè)客戶程序模塊的管理類程具有被調(diào)用的init操作。在各個(gè)客戶程序?qū)S媚K(0810、0720)的中說明的該操作的行為。
主應(yīng)用程序接口(1206)由EEPServer∷setupGemServer操作初始化GEM服務(wù)程序的接口(1206)。該操作產(chǎn)生EventProcessorImpl對(duì)象的實(shí)例,并且在當(dāng)GEM服務(wù)程序啟動(dòng)時(shí),可被GEM服務(wù)程序找到的位置中發(fā)布該實(shí)例。
主應(yīng)用程序記錄器(1102)GEM服務(wù)程序在EEP于初始化步驟(1206)中發(fā)布位置中找到其相對(duì)于EEP的公共接口,EventProcessor。根據(jù)需要,它調(diào)用EventProcessorImpl∷register EML和register NE操作。由于ECOM客戶程序的特定需要,這些操作觸發(fā)ECOM接口(0710、0730)的產(chǎn)生。這又導(dǎo)致(1040)和(1050)的實(shí)例的產(chǎn)生,所述(1040)和(1050)為ECOM事件客戶程序建立完整的事件傳送機(jī)構(gòu)。
激活客戶程序傳送(1400)圖14(1400)描述為各個(gè)客戶程序激活事件傳送機(jī)構(gòu)的步驟。雖然事件傳送細(xì)節(jié)因各種事件客戶程序而不同,但是總的過程是大致相同的。
根據(jù)在(1101)中確定的配置數(shù)據(jù),選擇特定客戶程序的事件傳送的具體策略(1401)。所述策略是事件通道、事件篩選程序和按照所需方式有效地把事件傳送給目標(biāo)客戶程序的其它對(duì)象的配置。
查找通知服務(wù)(0360)的EventChannelFactory(1402)。該制造者(Factory)用于產(chǎn)生事件通道。利用本領(lǐng)域的技術(shù)人員了解的典型CORBA機(jī)制查找該制造者。
借助該制造者,產(chǎn)生一個(gè)或多個(gè)事件通道(1403)。根據(jù)選擇的策略和供給的配置數(shù)據(jù),配置新產(chǎn)生的事件通道(1404)。
產(chǎn)生通知服務(wù)事件供給者(1405),它將把事件從EEP提供給事件通道。該事件供給者利用在CORBA標(biāo)準(zhǔn)服務(wù)文獻(xiàn)中描述的程序與事件通道相連。
新產(chǎn)生的通道事件供給者(0406)與特定的客戶程序調(diào)度程序相連(1406)。這是在調(diào)度模塊的初始化(1202)內(nèi)產(chǎn)生的IEventDispatcher的客戶程序?qū)S脤?shí)例(0404)。通道事件供給者通過IEventListener的實(shí)例(0405)與調(diào)度程序相連。這在EEP內(nèi)建立起從來自于GEM服務(wù)程序的事件的接收到將用于特定事件客戶程序的事件通道的事件流程。
最后,產(chǎn)生恰當(dāng)?shù)腎SupplierFactory(1030)的實(shí)例(1407)。具體的類型是正被激活的事件客戶程序的函數(shù)。制造者與新產(chǎn)生的事件通道相關(guān)。當(dāng)客戶程序登記時(shí),EEP將使用該制造者產(chǎn)生事件通道上的供給者代理,并且把這些返回給客戶程序。借助該最終步驟,特定事件客戶程序的內(nèi)部事件傳送結(jié)構(gòu)被完全激活,并且可支持客戶程序的登記和事件的傳送。
處理客戶程序登記(1500)圖15(1500)圖解說明當(dāng)事件客戶程序登記時(shí)EEP可執(zhí)行的步驟。雖然使用的實(shí)際接口和子例程專用于正在登記的事件客戶程序,但是內(nèi)部過程大體相同。
術(shù)語“登記”實(shí)際包括兩種情況。第一種情況是事件客戶程序正在試圖連接以便接收事件。第二種情況是已連接的事件客戶程序正在試圖斷開,從而不再接收事件。
連接客戶程序?qū)τ谡谶B接的事件客戶程序(1501),第一步(1502)是產(chǎn)生用于該特定客戶程序的事件通道上的新的供給者代理。利用標(biāo)準(zhǔn)通知服務(wù)方法完成這項(xiàng)操作。一旦產(chǎn)生供給者代理,則根據(jù)特定事件客戶程序的需要和EEP自身的配置,配置該供給者代理(1503)。
隨后在恰當(dāng)?shù)目蛻舫绦蚰K(0700、0800等)內(nèi)產(chǎn)生事件客戶程序?qū)S檬录┙o者。根據(jù)事件客戶程序,所述事件供給者可以是GemPushSupplierImpl(0840)、EventSupplierImpl(0730)或其它的實(shí)例。在(1407)激活內(nèi)產(chǎn)生的ISupplierFactory(1030)的客戶程序?qū)S脤?shí)例用于該用途。事件供給者是客戶程序希望用于關(guān)于事件進(jìn)行連接,并且控制事件流程的事件客戶程序?qū)S媒涌凇?br>
隨后使新產(chǎn)生的事件供給者與供給者代理(1505)相連。這種連接使客戶程序的事件供給者能夠向?qū)⑦M(jìn)行實(shí)際工作的實(shí)際供給者代理發(fā)送連接并控制事件流程的請(qǐng)求。事件供給者用作特定事件供給者的接口要求和可從通知服務(wù)獲得的接口要求之間的適配器的作用。
新的事件供給者被添加到該類客戶程序的當(dāng)前供給者名單中(1506)。保存該名單,從而如果需要稍后可斷開事件客戶程序。最后,事件供給者被返回給客戶程序(1507)。這允許客戶程序使用事件供給者進(jìn)行實(shí)際連接,從而接收事件并且控制到達(dá)客戶程序的事件流程。每個(gè)客戶程序使用客戶程序?qū)S眠^程和一組子例程來完成此項(xiàng)工作,圖中未表示。
斷開客戶程序正在斷開的客戶程序(1501)已關(guān)于事件被連接。從事件供給者名單中找到特定事件客戶程序的事件供給者(1508)。破壞與客戶程序?qū)S檬录ǖ老噙B的事件供給者的供給者代理(1509)。這永久地阻止事件到達(dá)專用事件客戶程序,同時(shí)便于未來連接客戶程序。從名單中除去該事件供給者(1510),以指出特定的事件客戶程序已斷開。
接收并處理事件(1600)圖16(1600)描述當(dāng)EEP從GEM服務(wù)程序接收事件并且需要把該事件傳送給登記的事件客戶程序時(shí),EEP執(zhí)行的步驟。GEM服務(wù)程序把事件發(fā)送給EventProcessorImpl(0520),以啟動(dòng)該過程。圖4(0400)表示作這些步驟的結(jié)果,在EEP內(nèi)的對(duì)象之間的事件的流動(dòng)。
檢查事件檢查事件以確定該事件是否是專用于事件客戶程序類型的事件(1601)。GEM服務(wù)程序可選擇特別用于諸如ECOM之類的單獨(dú)事件客戶程序類型的事件。如果事件是客戶程序?qū)S檬录?,則該事件被發(fā)送給恰當(dāng)?shù)目蛻舫绦蛘{(diào)度程序(0404)。否則該事件被發(fā)送給MainAppDispatcher(0401)。
轉(zhuǎn)換發(fā)送給MainAppDispatcher(0401)的事件隨后被發(fā)送給各個(gè)ClientTranslatorListener(0402)。這些監(jiān)聽程序確保事件被發(fā)送給各個(gè)客戶程序轉(zhuǎn)換程序(0403)(1602)。每個(gè)轉(zhuǎn)換程序確定事件是否關(guān)心其特定的事件客戶程序類型(1603)。各個(gè)事件客戶程序具有關(guān)于它所希望接收事件的不同標(biāo)準(zhǔn)。如果客戶程序不關(guān)心事件(1603),則丟棄該事件(1605),不進(jìn)行進(jìn)一步處理。如果客戶程序關(guān)心事件,則將其從GEM服務(wù)程序產(chǎn)生的形式轉(zhuǎn)換成由特定事件客戶程序所需的形式(1604)。隨后把轉(zhuǎn)換后的事件發(fā)送給對(duì)應(yīng)的客戶程序調(diào)度程序(0404)。
調(diào)度利用IEventDispatcher∷dispatch操作,把要發(fā)送給特定事件客戶類型的所有事件發(fā)送給恰當(dāng)?shù)目蛻舫绦蛘{(diào)度程序??蛻舫绦蛘{(diào)度程序?qū)⑹录l(fā)送給各個(gè)登記的IEventListener(1607),所述登記的IEventListener是ClientChannelListener(0405)。該監(jiān)聽程序利用ChannelSupplier(0406)把接收的事件發(fā)送給客戶程序?qū)S檬录ǖ?1608)。一旦事件通道收到該事件,則事件通道將其發(fā)送給已登記的(1106)所有事件客戶程序用戶(1609)。按照這種方式,從GEM服務(wù)程序發(fā)出的事件被轉(zhuǎn)換,并且按照客戶程序所需的方式被發(fā)送給恰當(dāng)?shù)目蛻舫绦颉?br>
調(diào)度程序的對(duì)象模型(0400)圖4(0400)圖解說明EEP內(nèi)部提供的用于把接收的事件傳送給它們的最終目的地的對(duì)象之間的關(guān)系。后綴為“Dispatcher”的各個(gè)對(duì)象是IEventDispatcher的實(shí)例。類似地,后綴為“Listener”的各個(gè)對(duì)象是IEventListener的實(shí)例??蛻舫绦蜣D(zhuǎn)換程序?qū)ο笫荌EventTranslator的實(shí)例。
MainAppDispatcher(0401)具有若干監(jiān)聽程序,一個(gè)監(jiān)聽程序用于一個(gè)ClientTranslator(0402)。這些監(jiān)聽程序從MainAppDispatcher(0401)接收事件,并將事件轉(zhuǎn)發(fā)給它們相應(yīng)的轉(zhuǎn)換程序。轉(zhuǎn)換程序執(zhí)行其子例程(1602、1604、1605),并且把事件發(fā)送給ClientDispatcher(0404),每種客戶程序存在一個(gè)ClientDispatcher(0404)。ClientDispatcher(0404)按照在(1600)中描述的方式處理事件。
本發(fā)明的優(yōu)選系統(tǒng)環(huán)境雖然本發(fā)明最好應(yīng)用于通過利用基于圖形用戶界面(GUI)的操作控制臺(tái)本地或者遠(yuǎn)程管理和維護(hù)電信網(wǎng)絡(luò)的情況,不過本發(fā)明也可應(yīng)用于按照統(tǒng)一的方式管理計(jì)算機(jī)網(wǎng)絡(luò)中的任意類型的硬件和/或軟件組件,同時(shí)使軟件設(shè)計(jì)復(fù)雜性和維護(hù)費(fèi)用降至最小的情況。
本發(fā)明的功能單元廣泛適用于涉及源于各種硬件和軟件生產(chǎn)商的多種遠(yuǎn)程設(shè)備的情況。由于本發(fā)明打破了網(wǎng)絡(luò)部件管理和用于執(zhí)行管理功能的工具之間的編譯-時(shí)間連接,從而允許廣泛應(yīng)用于通過增加硬件和軟件,網(wǎng)絡(luò)必定動(dòng)態(tài)增長(zhǎng),但是在這種升級(jí)過程中網(wǎng)絡(luò)必須保持可工作狀態(tài)的情形。
結(jié)論公開一種包含允許重新格式化接收的事件,并且把這些事件傳送給先前登記的事件用戶的獨(dú)立軟件組件的外部事件處理器(EEP)系統(tǒng)和方法。本發(fā)明教導(dǎo)了在單獨(dú)的軟件進(jìn)程內(nèi)運(yùn)行的應(yīng)付事件處理和傳送的獨(dú)立軟件組件的產(chǎn)生。該獨(dú)立軟件進(jìn)程具有由網(wǎng)絡(luò)管理應(yīng)用軟件用于以事件的最基本形式向外部事件處理器(EEP)發(fā)送事件的遠(yuǎn)程接口。隨后,EEP執(zhí)行把提供的事件轉(zhuǎn)換成外部事件用戶所需的恰當(dāng)形式和類型必需的所有其它子例程。另外,EEP向事件提供外部用戶所需的服務(wù)質(zhì)量(QoS)性能。
雖然在附圖中舉例說明,并在前述說明中具體描述了本發(fā)明的一個(gè)優(yōu)選實(shí)施例,但是要明白本發(fā)明并不局限于公開的實(shí)施例,相反在不脫離由下述權(quán)利要求陳述和限定的本發(fā)明的精神的情況下,可做出各種調(diào)整、修改和替換。
權(quán)利要求
1.一種外部事件處理器(EEP)系統(tǒng),包括(a)一個(gè)或多個(gè)事件供給者;(b)一個(gè)或多個(gè)事件用戶;(c)一個(gè)或多個(gè)通知通道裝置;和(d)一個(gè)外部事件處理器軟件子系統(tǒng)裝置;其中所述外部事件處理器軟件子系統(tǒng)裝置在所述事件供給者和所述事件用戶之間轉(zhuǎn)換事件;所述外部事件處理器軟件子系統(tǒng)裝置具有通過主應(yīng)用軟件從所述事件供給者接收事件的外部接口;所述外部事件處理器軟件子系統(tǒng)裝置可通過所述外部接口從一個(gè)或多個(gè)網(wǎng)絡(luò)部件接收事件。
2.按照權(quán)利要求1所述的外部事件處理器(EEP)系統(tǒng),還包括(a)MainAppDispatcher裝置;(b)ClientTranslatorListener裝置;(c)ClientListener裝置;(d)ClientDispatcher裝置;(e)ClientChannelListener裝置;和(f)ChannelSupplier裝置;其特征在于,通過所述裝置(a)-(f)順序處理所述事件。
3.按照權(quán)利要求1所述的外部事件處理器(EEP)系統(tǒng),還包括(a)EEP∷app裝置;(b)EEP∷util裝置;(c)EEP∷common裝置;(d)EEP∷client裝置;(e)EEP∷server裝置;(f)EEP∷transport裝置;和(g)EEP∷dispatch裝置。
4.按照權(quán)利要求1所述的外部事件處理器(EEP)系統(tǒng),其特征在于,所述事件供給者和事件用戶駐留在計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的獨(dú)立節(jié)點(diǎn)上。
5.按照權(quán)利要求1所述的外部事件處理器(EEP)系統(tǒng),其特征在于,在應(yīng)用程序編程接口(API)內(nèi)實(shí)現(xiàn)所述系統(tǒng)的一個(gè)或多個(gè)組件。
6.按照權(quán)利要求1所述的外部事件處理器(EEP)系統(tǒng),其特征在于,通過因特網(wǎng)進(jìn)行所述傳送。
7.按照權(quán)利要求1所述的外部事件處理器(EEP)系統(tǒng),其特征在于,在個(gè)人計(jì)算機(jī)(PC)上實(shí)現(xiàn)所述系統(tǒng)的一個(gè)或多個(gè)組件。
8.按照權(quán)利要求7所述的外部事件處理器(EEP)系統(tǒng),其特征在于,所述個(gè)人計(jì)算機(jī)使用HP-UXTM操作運(yùn)行環(huán)境。
9.按照權(quán)利要求7所述的外部事件處理器(EEP)系統(tǒng),其特征在于,所述個(gè)人計(jì)算機(jī)使用LINUXTM操作運(yùn)行環(huán)境。
10.按照權(quán)利要求7所述的外部事件處理器(EEP)系統(tǒng),其特征在于,所述個(gè)人計(jì)算機(jī)使用SOLARISTM操作運(yùn)行環(huán)境。
11.按照權(quán)利要求7所述的外部事件處理器(EEP)系統(tǒng),其特征在于,所述個(gè)人計(jì)算機(jī)使用UNIXTM操作運(yùn)行環(huán)境。
12.按照權(quán)利要求7所述的外部事件處理器(EEP)系統(tǒng),其特征在于,所述個(gè)人計(jì)算機(jī)使用MicrosofWindowsTM操作運(yùn)行環(huán)境。
13.一種外部事件處理(EEP)方法,包括(1)從網(wǎng)絡(luò)部件或者其它事件供給者接收事件;(2)通過外部接口把所述事件傳送給外部事件處理(EEP)軟件組件;(3)把所述事件轉(zhuǎn)換成適于由事件用戶解釋的形式;(4)把所述轉(zhuǎn)換后的事件傳送給事件用戶,其中通過一個(gè)或多個(gè)事件通道把所述事件從所述事件供給者傳送給所述事件用戶。
14.按照權(quán)利要求13所述的外部事件處理(EEP)方法,還包括通過下述裝置順序處理所述事件(a)MainAppDispatcher裝置;(b)ClientTranslatorListener裝置;(c)ClientListener裝置;(d)ClientDispatcher裝置;(e)ClientChannelListener裝置;和(f)ChannelSupplier裝置。
15.按照權(quán)利要求13所述的外部事件處理(EEP)方法,還包括借助下述裝置處理所述事件(a)EEP∷app裝置;(b)EEP∷util裝置;(c)EEP∷common裝置;(d)EEP∷client裝置;(e)EEP∷server裝置;(f)EEP∷transport裝置;和(g)EEP∷dispatch裝置。
16.按照權(quán)利要求13所述的外部事件處理(EEP)方法,其特征在于,所述事件供給者和事件用戶駐留在計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的獨(dú)立節(jié)點(diǎn)上。
17.按照權(quán)利要求13所述的外部事件處理(EEP)方法,其特征在于,在應(yīng)用程序編程接口(API)內(nèi)實(shí)現(xiàn)所述方法的一個(gè)或多個(gè)步驟。
18.按照權(quán)利要求13所述的外部事件處理(EEP)方法,其特征在于,通過因特網(wǎng)進(jìn)行所述傳送。
19.按照權(quán)利要求13所述的外部事件處理(EEP)方法,其特征在于,在個(gè)人計(jì)算機(jī)(PC)上實(shí)現(xiàn)所述方法的一個(gè)或多個(gè)步驟。
20.按照權(quán)利要求19所述的外部事件處理(EEP)方法,其特征在于,所述個(gè)人計(jì)算機(jī)使用HP-UXTM操作運(yùn)行環(huán)境。
21.按照權(quán)利要求19所述的外部事件處理(EEP)方法,其特征在于,所述個(gè)人計(jì)算機(jī)使用LINUXTM操作運(yùn)行環(huán)境。
22.按照權(quán)利要求19所述的外部事件處理(EEP)方法,其特征在于,所述個(gè)人計(jì)算機(jī)使用SOLARISTM操作運(yùn)行環(huán)境。
23.按照權(quán)利要求19所述的外部事件處理(EEP)方法,其特征在于,所述個(gè)人計(jì)算機(jī)使用UNIXTM操作運(yùn)行環(huán)境。
24.按照權(quán)利要求19所述的外部事件處理(EEP)方法,其特征在于,所述個(gè)人計(jì)算機(jī)使用MicrosofWindowsTM操作運(yùn)行環(huán)境。
25.一種利用(1)一個(gè)或多個(gè)事件供給者;(2)一個(gè)或多個(gè)事件用戶;(3)一個(gè)通信網(wǎng)絡(luò);(4)編碼事件信令數(shù)據(jù);和(5)外部事件處理(EEP)裝置;構(gòu)成的外部事件處理(EEP)編碼傳播信號(hào)數(shù)據(jù)流,其中所述外部事件處理裝置借助外部接口,通過所述通信網(wǎng)絡(luò)把所述事件供給者和事件用戶之間的事件信息轉(zhuǎn)換給主應(yīng)用軟件,所述主應(yīng)用軟件通過所述外部接口把事件數(shù)據(jù)推送給所述EEP;借助事件信息的編碼,通過所述通信通道進(jìn)行從所述事件供給者到所述事件用戶的所述轉(zhuǎn)換。
26.一種具有提供外部事件處理(EEP)功能的計(jì)算機(jī)可讀程序代碼裝置的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可讀程序裝置包括(1)從網(wǎng)絡(luò)部件或者其它事件供給者接收事件的計(jì)算機(jī)程序代碼裝置;(2)通過外部接口,把所述事件傳送給外部事件處理(EEP)軟件組件的計(jì)算機(jī)程序代碼裝置;(3)把所述事件轉(zhuǎn)換成適于事件用戶解釋的形式的計(jì)算機(jī)程序代碼裝置;(4)把所述轉(zhuǎn)換后的事件傳送給事件用戶的計(jì)算機(jī)程序代碼裝置,其中通過一個(gè)或多個(gè)事件通道,把所述事件從所述事件供給者傳送給所述事件用戶。
27.按照權(quán)利要求26所述的計(jì)算機(jī)可用介質(zhì),其特征在于,通過下述裝置順序處理所述事件(a)MainAppDispatcher計(jì)算機(jī)程序代碼裝置;(b)ClientTranslatorListener計(jì)算機(jī)程序代碼裝置;(c)ClientListener計(jì)算機(jī)程序代碼裝置;(d)ClientDispatcher計(jì)算機(jī)程序代碼裝置;(e)ClientChannelListener計(jì)算機(jī)程序代碼裝置;和(f)ChannelSupplier計(jì)算機(jī)程序代碼裝置。
28.按照權(quán)利要求26所述的計(jì)算機(jī)可用介質(zhì),還包括借助下述裝置處理所述事件(a)EEP∷app計(jì)算機(jī)程序代碼裝置;(b)EEP∷util計(jì)算機(jī)程序代碼裝置;(c)EEP∷common計(jì)算機(jī)程序代碼裝置;(d)EEP∷client計(jì)算機(jī)程序代碼裝置;(e)EEP∷server計(jì)算機(jī)程序代碼裝置;(f)EEP∷transport計(jì)算機(jī)程序代碼裝置;(g)EEP∷dispatch計(jì)算機(jī)程序代碼裝置。
29.按照權(quán)利要求26所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述事件供給者和事件用戶駐留在計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的獨(dú)立節(jié)點(diǎn)上。
30.按照權(quán)利要求26所述的計(jì)算機(jī)可用介質(zhì),其特征在于,在應(yīng)用程序編程接口(API)內(nèi)實(shí)現(xiàn)所述功能的一個(gè)或多個(gè)步驟。
31.按照權(quán)利要求26所述的計(jì)算機(jī)可用介質(zhì),其特征在于,通過因特網(wǎng)進(jìn)行所述傳送。
32.按照權(quán)利要求26所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述介質(zhì)與個(gè)人計(jì)算機(jī)(PC)兼容。
33.按照權(quán)利要求32所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述個(gè)人計(jì)算機(jī)使用HP-UXTM操作運(yùn)行環(huán)境。
34.按照權(quán)利要求32所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述個(gè)人計(jì)算機(jī)使用LINUXTM操作運(yùn)行環(huán)境。
35.按照權(quán)利要求32所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述個(gè)人計(jì)算機(jī)使用SOLARISTM操作運(yùn)行環(huán)境。
36.按照權(quán)利要求32所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述個(gè)人計(jì)算機(jī)使用UNIXTM操作運(yùn)行環(huán)境。
37.按照權(quán)利要求32所述的計(jì)算機(jī)可用介質(zhì),其特征在于,所述個(gè)人計(jì)算機(jī)使用MicrosofWindowsTM操作運(yùn)行環(huán)境。
全文摘要
本發(fā)明涉及網(wǎng)絡(luò)和分布式部件管理系統(tǒng)。公開一種包含允許重新格式化接收的事件,并且把這些事件傳送給先前登記的事件用戶的獨(dú)立軟件組件的外部事件處理器(EEP)系統(tǒng)和方法。本發(fā)明教導(dǎo)了在單獨(dú)的軟件進(jìn)程內(nèi)運(yùn)行的應(yīng)付事件處理和傳送的獨(dú)立軟件組件的產(chǎn)生。該獨(dú)立軟件進(jìn)程具有由網(wǎng)絡(luò)管理應(yīng)用軟件用于以事件的最基本形式向外部事件處理器(EEP)發(fā)送事件的遠(yuǎn)程接口。隨后,EEP執(zhí)行把提供的事件轉(zhuǎn)換成外部事件用戶所需的恰當(dāng)形式和類型必需的所有其它子例程。另外,EEP向事件提供外部用戶所需的服務(wù)質(zhì)量(QoS)性能。
文檔編號(hào)G06F9/46GK1419188SQ02130110
公開日2003年5月21日 申請(qǐng)日期2002年8月21日 優(yōu)先權(quán)日2001年9月12日
發(fā)明者保羅·A.·約翰遜 申請(qǐng)人:阿爾卡塔爾公司