專利名稱::一種能夠運行在英特網(wǎng)上的事件訂閱服務(wù)系統(tǒng)及實現(xiàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種能夠運行在英特網(wǎng)上的事件訂閱服務(wù)系統(tǒng),用戶可以設(shè)置需要訂閱的事件的特征,以及接收事件通知的方式,當(dāng)發(fā)生符合相應(yīng)特征的事件時,系統(tǒng)以用戶指定的方式發(fā)送事件通知,以及實現(xiàn)這類系統(tǒng)的方法。它屬于計算機信息服務(wù)領(lǐng)域。
背景技術(shù):
:目前,人工和機器跟蹤事件的方式有兩種查詢和訂閱。對于英特網(wǎng)中運行的系統(tǒng)來說,查詢和訂閱的數(shù)據(jù)格式、通訊方式,都是由服務(wù)系統(tǒng)確定的。對于臨時性的事件搜索和跟蹤,適合查詢方式;但長期性的、時間關(guān)鍵的事件跟蹤需求,訂閱方式是最合適的。下面敘述的本發(fā)明的背景,都是以英特網(wǎng)中運行的訂閱系統(tǒng)為基礎(chǔ)的。目前,英特網(wǎng)中運行的訂閱服務(wù)器,通常以短信或者電子郵件方式進行通知。這兩種方式,都不便于處理非文本的事件,也不適合時間關(guān)鍵的事件跟蹤需求。目前,訂閱特征都是用事件字段與關(guān)鍵字的匹配關(guān)系來描述的,很難描述建立在多個事件之上的綜合的事件特征,對于派生新事件、發(fā)掘異常事件等需求,需要訂閱者訂閱大量事件,然后自行處理。目前,訂閱服務(wù)都是基于單獨的事件源提供服務(wù)的,即便某些服務(wù)上集合了多個其它服務(wù)上的服務(wù)于一體,都不支持跨越多個事件源的連接關(guān)系,并在連接形成的視圖上定義需要訂閱的事件特征。綜上所述,目前的運行于英特網(wǎng)中運行的訂閱系統(tǒng),具有通知方式單調(diào)、不支持復(fù)雜特征描述、不支持跨越事件源定義需要訂閱的事件特征等局限性。
發(fā)明內(nèi)容鑒于以上實際情況,本發(fā)明的目的在于提供一種能夠運行在英特網(wǎng)上的事件訂閱服務(wù)系統(tǒng),用戶可以設(shè)置需要訂閱的事件的特征,以及接收事件通知的方式,當(dāng)發(fā)生符合相應(yīng)特征的事件時,系統(tǒng)以用戶指定的方式發(fā)送事件通知。允許用戶指定接收事件通知的方式,擴展了當(dāng)前同類系統(tǒng),可以處理多種格式,包括二進制格式的事件信息,也可以處理事件關(guān)鍵的事件跟蹤需求。具體來說,這種系統(tǒng)就是(a)包含一個用于定義事件特征的界面或應(yīng)用編程接口,便于用戶輸入需要訂閱的事件的特征,簡稱特征設(shè)置;(b)包含一個用于定義事件接收方式的設(shè)置界面或應(yīng)用編程接口,便于用戶輸入當(dāng)發(fā)生(a)定義的事件時,本系統(tǒng)如何通知用戶,簡稱通知設(shè)置,包括使用的通訊方式、通知格式等;(c)當(dāng)系統(tǒng)采集到符合用戶定義的事件特征的事件時,即時發(fā)送通知。為了能夠定義復(fù)雜的事件特征,減少網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,以及降低訂閱者后續(xù)處理的工作量,本發(fā)明進一步公開了下面兩種定義事件特征的方式(a)采用事件處理語言(EventProcessingLanguage,簡稱EPL),或類似語言來定4義事件特征,其中EPL是BEAWebLogicEventServer所采用的語言;(b)采用可視化用戶界面,讓用戶通過選擇下列一個或多個選項來定義事件特征(bl)需要輸出的事件屬性、或派生屬性;(b2)查詢事件源,可以包含批窗口(BatchedWindows)設(shè)置;(b3)檢索條件;(b4)分組屬性或表達式;(b5)輸出規(guī)范;(b6)排序設(shè)置。如前文所述,本發(fā)明可以讓用戶指定接收事件通知的方式。更具體地,我們在通常的電子郵件、手機短信等的基礎(chǔ)上,引入了TCP/IP套接字方式,即通知設(shè)置提供以下通訊方式選擇(a)電子郵件方式,需要用戶提供接收事件通知的電子郵件地址;(b)手機短信方式,需要用戶提供接收事件通知的手機號碼;(c)接受TCP/IP傳入連接的套接字方式,需要提供用戶接收服務(wù)器的IP地址、端口,以及建立會話需要的認證所需信息,比如用戶/密碼等;(d)用戶自己連接的TCP/IP套接字方式,當(dāng)發(fā)生用戶需要的事件時,通過事先建立的TCP連接發(fā)送通知。目前的運行在英特網(wǎng)上的系統(tǒng),事件通知格式以方便人工閱讀為主。本發(fā)明對此作了擴展用戶可以通過通知設(shè)置選擇適合自己的事件通知各式,通知各式包括但不限于XML各式、csv格式、Java對象或集合格式、用戶自定義的帶占位符的普通文本或HTML格式。其中占位符是對事件屬性的引用或表達式。作為專業(yè)的事件訂閱服務(wù)系統(tǒng),除了提供多樣的事件通知方式、靈活強大的事件特征定義機制外,還要能夠集成眾多的事件源。因此,本發(fā)明引入了這樣的擴展機制提供事件采集器接口,以便第三方可以注冊和發(fā)布自己的事件采集器,為系統(tǒng)提供更多的原始事件源。原始事件非常多,如何找到需要的事件是關(guān)鍵。因此,需要引入事件分析的函數(shù)和過程。因此,本發(fā)明進一步引入了稱為事件分析器的過程,它有如下特征接收參數(shù)和/或事件,事件分析器的處理結(jié)果包括單不限于(a)產(chǎn)生特定類型的新事件、(b)產(chǎn)生過濾后的事件、(C)產(chǎn)生新的特定類型的事件分析器。本發(fā)明所述系統(tǒng),可以作這樣的擴展提供事件分析器接口,以便第三方注冊和發(fā)布自己的事件分析器。目前,信息分析領(lǐng)域已經(jīng)大量使用統(tǒng)計分析和數(shù)據(jù)挖掘技術(shù)了。為了擴展定義復(fù)雜事件特征的能力,方便運用統(tǒng)計分析和數(shù)據(jù)挖掘技術(shù),本發(fā)明進一步引入了事件分析器的概念。在本發(fā)明中,事件分析器,是一種程序,它接收參數(shù)和/或事件,運行特定的統(tǒng)計和/或數(shù)據(jù)挖掘算法或其它算法,處理結(jié)果包括但不限于(a)產(chǎn)生特定類型的新事件;(b)產(chǎn)生過濾后的事件;(c)產(chǎn)生新的特定類型的事件分析器。特別值得一提的是,事件分析器在建模過程中,以一系列輸入事件為基礎(chǔ),經(jīng)培訓(xùn)算法,產(chǎn)生挖掘模型,這個模型就是一個新的特定類型的事件分析器。這個新的事件分析器,接收新的事件,用先前培訓(xùn)建立的規(guī)則進行處理產(chǎn)生新的或經(jīng)過濾的事件,稱為模型的運用。為了方便重用和共享事件分析器,本發(fā)明提出了進一步擴展提供事件分析器接口,以便第三方注冊和發(fā)布自己的事件分析器。事件分析器在整個系統(tǒng)中的使用,類似于新的事件源,只不過這類事件源需要其它事件的驅(qū)動。本發(fā)明還引入了另一類程序擴展,即事件分析函數(shù),它接收參數(shù)和/或事件,返回布爾值、數(shù)字值、日期時間值或字符串值。同樣,為了方便重用和共享事件分析器,本發(fā)明提出了進一步擴展提供事件分析函數(shù)接口,以便第三方注冊和發(fā)布自己的事件分析函數(shù)。為了方便集成事件分析器,本發(fā)明進一步公布了一種事件分析器注冊的規(guī)范,即注冊時提供一個包括以下內(nèi)容的描述事件分析器的名稱、介紹、參數(shù)、流入口及流入事件規(guī)范、流出口及流出事件規(guī)范。一個事件分析器,可以有O個或多個參數(shù),參數(shù)用于調(diào)整事件分析器的內(nèi)部工作機制。事件分析器通常帶有一個或多個事件流入口。每一個事件流入口,都包含一個用以區(qū)別其他流入口的名字,以及一個描述流入事件必須遵循的元數(shù)據(jù)規(guī)范,用以指明流入事件的包含哪些屬性,以及這些屬性的名字、數(shù)據(jù)類型、取值范圍等信息。如前文所述,部分事件分析器經(jīng)實例化(設(shè)定參數(shù)、綁定事件流入口到具體的事件流)后,效果相當(dāng)于一個事件源,因此,我們還必須定義事件分析器的流出口及其對應(yīng)的流出事件規(guī)范。本發(fā)明在事件分析器概念的基礎(chǔ)上,公布了事件分析器的一種運用,以及擴展系統(tǒng)以支持這種運用用戶可以通過設(shè)置參數(shù)、綁定流入事件來實例化事件分析器,將實例化的事件分析器作為自定義的事件源,在自己訂閱事件時,可以引用自定義事件源。更進一步,用戶可以發(fā)布自定義的事件源,以便其他用戶使用;或者用戶可以設(shè)定在特定的用戶群中共享自定義的事件源。本系統(tǒng),由于引入了可以指定通知方式以及即時發(fā)送事件通知等特征,尚沒有一個公開的可以非常方便地通過擴展來實現(xiàn)本系統(tǒng)的資源。因此,本發(fā)明公布了一種可行的實現(xiàn)方法,它具有以下特征(a)包含特征分解服務(wù)器,將用戶的訂閱條件,即特征設(shè)置分解為執(zhí)行步驟;包含執(zhí)行引擎,維護執(zhí)行步驟構(gòu)建的執(zhí)行上下文,并以此為基礎(chǔ)進行事件傳播和處理;包含一個通知服務(wù)器,維護事件源和通知設(shè)置的對應(yīng)關(guān)系,并執(zhí)行事件通知任務(wù)。(b)—個特征設(shè)置在執(zhí)行之前,轉(zhuǎn)化為一個或多個執(zhí)行步驟,簡稱執(zhí)行分解。每一個步驟都包括一個確定的內(nèi)部表示,以及一個確定的標(biāo)識符。每個執(zhí)行步驟,在執(zhí)行時都會輸出事件,輸出的事件可以是原始事件,也可以是派生事件。這些執(zhí)行步驟,也稱為派生事件源,多個特征設(shè)置可以共享相同的執(zhí)行步驟,即共享派生事件源。每個執(zhí)行分解產(chǎn)生的最后執(zhí)行步驟產(chǎn)生的事件,通常除了內(nèi)部傳遞外,還需要通知訂閱者,稱為帶有通知的執(zhí)行步或帶有通知的派生事件源。這時要向事件通知服務(wù)器注冊這個派生事件源以及它對應(yīng)的通知設(shè)置;(c)執(zhí)行引擎維護一個執(zhí)行上下文圖,從原始事件源開始,根據(jù)所有特征設(shè)置的執(zhí)行分解,構(gòu)建成一張可以帶有回環(huán)的有向圖。運行時根據(jù)執(zhí)行上下文圖來傳播事件,圖中每一個節(jié)點都維護一個指向事件源(包括原始的和派生的)的內(nèi)部表示的引用,同時維護一個是否對外通知的標(biāo)志,指示是否需要將產(chǎn)生的事件通知訂閱者。(d)每一個事件訂閱,都對應(yīng)一個通知設(shè)置。多個事件對應(yīng)的通知設(shè)置可能是相同的,相同的通知設(shè)置對應(yīng)相同的內(nèi)部表示。系統(tǒng)根據(jù)帶寬和流量部署通知設(shè)置,相同的通知設(shè)置可以部署在不同的通知節(jié)點。(e)帶有通知的執(zhí)行步,并不直接向訂閱者發(fā)送通知,而是送到事件通知服務(wù)器。通知服務(wù)器根據(jù)負載均衡算法、通知節(jié)點部署、事件源與通知設(shè)置的對應(yīng)關(guān)系等將事件轉(zhuǎn)發(fā)到具體的通知節(jié)點執(zhí)行實際的通知。附圖描述了從用戶訂閱事件到服務(wù)器發(fā)送事件的完整過程。用戶的訂閱行為,包含兩個部分特征設(shè)置和通知設(shè)置。特征設(shè)置,經(jīng)特征分解服務(wù)器,分解為若干執(zhí)行步驟。由于面向互聯(lián)網(wǎng)用戶,產(chǎn)生相同的特征設(shè)置,或包含相同執(zhí)行步驟的特征設(shè)置,是有較高概率的。因此,本發(fā)明的實現(xiàn)方法中指出,執(zhí)行引擎要綜合這些執(zhí)行步驟,構(gòu)造一個執(zhí)行上下文圖。以執(zhí)行上下文圖為基礎(chǔ),事件為驅(qū)動,對原始事件進行處理,產(chǎn)生用戶需要的目標(biāo)事件,并傳遞給事件通知服務(wù)器。由事件分析服務(wù)器根據(jù)負載均衡算法、通知節(jié)點部署、事件源與通知設(shè)置的對應(yīng)關(guān)系等將事件轉(zhuǎn)發(fā)到具體的通知節(jié)點執(zhí)行實際的通知。具體實施例方式
發(fā)明內(nèi)容章節(jié),已經(jīng)對如何實施、如何運用進行了具體描述。在這里,對事件分析器進行進一步闡述。假定我們檢測法院民事判決、裁定事件。每一個初審判決,產(chǎn)生一個初審判決事件,事件表示如下<table>tableseeoriginaldocumentpage7</column></row><table>同時,對每個初審判決進行跟蹤,產(chǎn)生判決反應(yīng)事件,表示如下<table>tableseeoriginaldocumentpage7</column></row><table>我們用大量的判決反應(yīng)事件為輸入,編號為事件標(biāo)識變量,當(dāng)事人反應(yīng)為分類變量(或目標(biāo)變量),其它事件屬性經(jīng)過數(shù)據(jù)預(yù)處理,采用數(shù)據(jù)挖掘算法,建立一個判決反應(yīng)預(yù)測模型。這里,接收判決反應(yīng)事件事件,以及指定事件標(biāo)識變量、目標(biāo)變量、需要本文預(yù)處理的屬性名、具有對照關(guān)系的屬性名等為參數(shù),輸出為判決反應(yīng)預(yù)測模型的程序,就是一個事件分析器。權(quán)利要求一種能夠運行在英特網(wǎng)上的事件訂閱服務(wù)系統(tǒng),其特征在于(a)包含一個用于定義事件特征的界面或應(yīng)用編程接口,便于用戶輸入需要訂閱的事件的特征,簡稱特征設(shè)置;(b)包含一個用于定義事件接收方式的設(shè)置界面或應(yīng)用編程接口,便于用戶輸入當(dāng)發(fā)生(a)定義的事件時,本系統(tǒng)如何通知用戶,簡稱通知設(shè)置,包括使用的通訊方式、通知格式等;(c)當(dāng)系統(tǒng)采集到符合用戶定義的事件特征的事件時,即時發(fā)送通知。2.如權(quán)利要求1所述的系統(tǒng),其特征在于特征設(shè)置采用如下方式中的一個或全部提供特征描述(a)采用事件處理語言(EventProcessingLanguage,簡稱EPL),或類似語言來定義事件特征,其中EPL是BEAWebLogicEventServer所采用的語言;(b)采用可視化用戶界面,讓用戶通過選擇下列一個或多個選項來定義事件特征(bl)需要輸出的事件屬性、或派生屬性;(b2)查詢事件源,可以包含批窗口(BatchedWindows)設(shè)置;(b3)檢索條件;(b4)分組屬性或表達式;(b5)輸出規(guī)范;(b6)排序設(shè)置。3.如權(quán)利要求1所述的系統(tǒng),其特征在于通知設(shè)置提供以下通訊方式選擇(a)電子郵件方式,需要用戶提供接收事件通知的電子郵件地址;(b)手機短信方式,需要用戶提供接收事件通知的手機號碼;(c)接受TCP/IP傳入連接的套接字方式,需要提供用戶接收服務(wù)器的IP地址、端口,以及建立會話需要的認證所需信息,比如用戶/密碼等;(d)用戶自己連接的TCP/IP套接字方式,當(dāng)發(fā)生用戶需要的事件時,通過事先建立的TCP連接發(fā)送通知。4.如權(quán)利要求1所述的系統(tǒng),其特征在于用戶可以通過通知設(shè)置選擇適合自己的事件通知各式,通知各式包括但不限于XML各式、csv格式、Java對象或集合格式、用戶自定義的帶占位符的普通文本或HTML格式,其中占位符是對事件屬性的引用或表達式。5.如權(quán)利要求1所述的系統(tǒng),其特征在于提供事件采集器接口,以便第三方可以注冊和發(fā)布自己的事件采集器,為系統(tǒng)提供更多的原始事件源。6.如權(quán)利要求1所述的系統(tǒng),其特征在于提供事件分析器接口,以便第三方注冊和發(fā)布自己的事件分析器,其中事件分析器是一種程序,它接收參數(shù)和/或事件,運行特定的統(tǒng)計和/或數(shù)據(jù)挖掘算法或其它算法,它的處理結(jié)果包括但不限于(a)產(chǎn)生特定類型的新事件;(b)產(chǎn)生過濾后的事件;(c)產(chǎn)生新的特定類型的事件分析器。7.如權(quán)利要求1所述的系統(tǒng),其特征在于提供事件分析函數(shù)接口,以便第三方注冊和發(fā)布自己的事件分析函數(shù),其中事件分析函數(shù)接收參數(shù)和/或事件,事件分析函數(shù)返回布爾值、數(shù)字值、日期時間值或字符串值。8.如權(quán)利要求6所述的系統(tǒng),其特征在于事件分析器注冊到系統(tǒng)時,需要提供一個描述,這個描述指出事件分析器的名稱、介紹、參數(shù)、流入口及流入事件規(guī)范、流出口及流出事件規(guī)范。9.如權(quán)利要求6所述的系統(tǒng),其特征在于用戶可以通過設(shè)置參數(shù)、綁定流入事件來實例化事件分析器,將實例化的事件分析器作為自定義的事件源,在自己訂閱事件時,可以引用自定義事件源。10.如權(quán)利要求9所述的系統(tǒng),其特征在于用戶可以發(fā)布自定義的事件源,以便其他用戶使用。11.如權(quán)利要求9所述的系統(tǒng),其特征在于用戶可以設(shè)定在特定的用戶群中共享自定義的事件源。12.實現(xiàn)權(quán)利要求l所述系統(tǒng)的方法,其特征在于(a)包含特征分解服務(wù)器,將用戶的訂閱條件,即特征設(shè)置分解為執(zhí)行步驟,包含執(zhí)行引擎,維護執(zhí)行步驟構(gòu)建的執(zhí)行上下文,并以此為基礎(chǔ)進行事件傳播和處理,包含一個通知服務(wù)器,維護事件源和通知設(shè)置的對應(yīng)關(guān)系,并執(zhí)行事件通知任務(wù);(b)—個特征設(shè)置在執(zhí)行之前,轉(zhuǎn)化為一個或多個執(zhí)行步驟,簡稱執(zhí)行分解,每一個步驟都包括一個確定的內(nèi)部表示,以及一個確定的標(biāo)識符,在執(zhí)行時都會輸出事件,輸出的事件可以是原始事件,也可以是派生事件,這些執(zhí)行步驟,也稱為派生事件源,多個特征設(shè)置可以共享相同的執(zhí)行步驟,即共享派生事件源,每個執(zhí)行分解產(chǎn)生的最后執(zhí)行步驟產(chǎn)生的事件,通常除了內(nèi)部傳遞外,還需要通知訂閱者,稱為帶有通知的執(zhí)行步或帶有通知的派生事件源,這時要向事件通知服務(wù)器注冊這個派生事件源以及它對應(yīng)的通知設(shè)置;(c)執(zhí)行引擎維護一個執(zhí)行上下文圖,從原始事件源開始,根據(jù)所有特征設(shè)置的執(zhí)行分解,構(gòu)建成一張可以帶有回環(huán)的有向圖,運行時根據(jù)執(zhí)行上下文圖來傳播事件,圖中每一個節(jié)點都維護一個指向事件源(包括原始的和派生的)的內(nèi)部表示的引用,同時維護一個是否對外通知的標(biāo)志,指示是否需要將產(chǎn)生的事件通知訂閱者;(d)每一個事件訂閱,都對應(yīng)一個通知設(shè)置,多個事件對應(yīng)的通知設(shè)置可能是相同的,相同的通知設(shè)置對應(yīng)相同的內(nèi)部表示,系統(tǒng)根據(jù)帶寬和流量部署通知設(shè)置,相同的通知設(shè)置可以部署在不同的通知節(jié)點;(e)帶有通知的執(zhí)行步,并不直接向訂閱者發(fā)送通知,而是送到事件通知服務(wù)器,通知服務(wù)器根據(jù)負載均衡算法、通知節(jié)點部署、事件源與通知設(shè)置的對應(yīng)關(guān)系等將事件轉(zhuǎn)發(fā)到具體的通知節(jié)點執(zhí)行實際的通知。全文摘要本發(fā)明涉及一種能夠運行在英特網(wǎng)上的事件訂閱服務(wù)系統(tǒng),用戶可以設(shè)置需要訂閱的事件的特征,以及接收事件通知的方式,當(dāng)發(fā)生符合相應(yīng)特征的事件時,系統(tǒng)以用戶指定的方式發(fā)送事件通知,以及實現(xiàn)這類系統(tǒng)的方法。它適用于處理長時間的、時間關(guān)鍵的事件跟蹤和處理。在服務(wù)器端預(yù)先進行復(fù)雜的事件處理運算,以及跨多個事件源的處理運算,可以大量減少訂閱端的處理工作,并利用服務(wù)器端的處理算法,減少網(wǎng)絡(luò)帶寬消耗。文檔編號H04L12/58GK101719879SQ200810200948公開日2010年6月2日申請日期2008年10月9日優(yōu)先權(quán)日2008年10月9日發(fā)明者萬德洪申請人:萬德洪