專利名稱:網(wǎng)絡(luò)事件處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種網(wǎng)絡(luò)事件處理方法。
背景技術(shù):
在現(xiàn)有技術(shù)中,比較常見的網(wǎng)絡(luò)事件處理方法都是通過重寫事件處理過程而實(shí)現(xiàn) 的,這個過程包括獲取數(shù)據(jù),處理數(shù)據(jù)以及結(jié)果輸出。但是,通過重寫事件處理過程實(shí)現(xiàn)網(wǎng) 絡(luò)事件的處理,需要在計(jì)算機(jī)中實(shí)現(xiàn)整個串行過程,同時需要計(jì)算機(jī)硬件設(shè)備嚴(yán)密的和軟 件系統(tǒng)的其它部分結(jié)合,從而造成移植性比較差。在實(shí)際應(yīng)用中,也可以在處理過程中采用插件的方式來實(shí)現(xiàn)網(wǎng)絡(luò)事件的處理。但 是,上述處理方式中的插件只是應(yīng)用于事件及數(shù)據(jù)的獲取或輸出,并不涉及到網(wǎng)絡(luò)事件的 實(shí)際處理過程。此外,插件也無法移植和單獨(dú)使用,同樣造成移植性較差的問題。
發(fā)明內(nèi)容
本發(fā)明提供一種網(wǎng)絡(luò)事件處理方法,以解決現(xiàn)有技術(shù)在網(wǎng)絡(luò)事件處理過程中移植 性差的問題。本發(fā)明提供一種網(wǎng)絡(luò)事件處理方法,包括根據(jù)系統(tǒng)配置以預(yù)定模式將一個或多個流節(jié)點(diǎn)以插件形式加載入系統(tǒng),并由所述 一個或多個流節(jié)點(diǎn)組成有向圖中的一個或多個流線路;由所述一個或多個流線路從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源,對所述數(shù)據(jù)源進(jìn)行處理,并將 處理結(jié)果進(jìn)行輸出或丟棄處理。本發(fā)明有益效果如下通過將一個或多個流節(jié)點(diǎn)以插件形式加載入系統(tǒng),解決了現(xiàn)有技術(shù)在網(wǎng)絡(luò)事件處 理過程中移植性差的問題,能夠方便快捷的對計(jì)算機(jī)進(jìn)行配置部署及調(diào)試,最大效率的對 網(wǎng)絡(luò)事件進(jìn)行并行處理,并降低系統(tǒng)資源消耗,具有高可靠的移植性。通過節(jié)點(diǎn)的配置部署 于分布式系統(tǒng)的多臺主機(jī)及進(jìn)程中,可以實(shí)現(xiàn)整個分布式集群的協(xié)同工作。
圖1是本發(fā)明實(shí)施例的網(wǎng)絡(luò)事件處理方法的流程圖;圖2是本發(fā)明實(shí)施例的事件拷貝方式獲取數(shù)據(jù)源的示意圖;圖3是本發(fā)明實(shí)施例的通過引用方式獲取數(shù)據(jù)源的示意圖;圖4是本發(fā)明實(shí)施例的進(jìn)程內(nèi)部署的結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例的進(jìn)程間部署的結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例的分布式部署的結(jié)構(gòu)示意圖。
具體實(shí)施例方式模塊化的設(shè)計(jì)思想自始以來就是軟件工程的基本要求,本發(fā)明實(shí)施例為了解決現(xiàn)有技術(shù)在網(wǎng)絡(luò)事件處理過程中移植性差的問題,達(dá)到降低各模塊的相互耦合、實(shí)現(xiàn)最大限 度的模塊化、系統(tǒng)靈活自由的配置及處理、多系統(tǒng)的聯(lián)動及分布式的構(gòu)建、處理多數(shù)據(jù)源的 網(wǎng)絡(luò)、以及其它的事件流及數(shù)據(jù)流并對處理結(jié)果依據(jù)需要及邏輯走向方便快捷的配置部署 及調(diào)試、最大效率的并行處理及最低系統(tǒng)資源消耗、以及高可靠的移植性的目的。提供了一 種網(wǎng)絡(luò)事件處理方法,以下結(jié)合附圖以及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理 解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。方法實(shí)施例根據(jù)本發(fā)明的實(shí)施例,提供了一種網(wǎng)絡(luò)事件處理方法,圖1是本發(fā)明實(shí)施例的網(wǎng) 絡(luò)事件處理方法的流程圖。在對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明之前,首先對本發(fā)明實(shí)施例 中涉及到的技術(shù)名詞進(jìn)行解釋1、流技術(shù)流實(shí)際上就是從數(shù)據(jù)源獲取數(shù)據(jù),經(jīng)歷中間多個處理過程,最終數(shù)據(jù)處 理結(jié)束后輸出或者丟棄的一個循環(huán)不斷的處理過程,也可以成為基于流的處理技術(shù)。2、有向圖技術(shù)把整個系統(tǒng)的所有處理過程連接起來,依據(jù)事件處理的時間順序, 構(gòu)成有向圖。3、插件技術(shù)基于模塊化的設(shè)計(jì),可根據(jù)需要自由加載卸載模塊。4、并行技術(shù)某些處理過程根據(jù)系統(tǒng)需要及效率要求,可能需要并行處理,一般而 言,線程池及進(jìn)程池可以滿足某些處理過程的并行要求。5、引用技術(shù)對數(shù)據(jù)使用之前予以引用,而在使用完成之后釋放引用,從而不需要 每次使用數(shù)據(jù)時都分配空間進(jìn)行拷貝。6、過濾器技術(shù)數(shù)據(jù)過濾技術(shù)是指通過一定的規(guī)則決定數(shù)據(jù)或數(shù)據(jù)處理過程的走向。以下對本發(fā)明實(shí)施例的網(wǎng)絡(luò)事件處理方法進(jìn)行說明,如圖1所示,根據(jù)本發(fā)明實(shí) 施例的網(wǎng)絡(luò)事件處理方法包括如下處理步驟101,根據(jù)系統(tǒng)配置以預(yù)定模式將一個或多個流節(jié)點(diǎn)以插件形式加載入系統(tǒng), 并由一個或多個流節(jié)點(diǎn)組成有向圖中的一個或多個流線路;在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例 可以支持分布式部署,通過節(jié)點(diǎn)的配置部署于分布式系統(tǒng)的多臺主機(jī)和進(jìn)程中,可以實(shí)現(xiàn) 整個分布式集群的協(xié)同工作。需要說明的是,一個或多個流節(jié)點(diǎn)可以包括1、獲取并派發(fā)數(shù)據(jù)源的主節(jié)點(diǎn);2、 對派發(fā)的數(shù)據(jù)源進(jìn)行處理的從節(jié)點(diǎn)。其中,主節(jié)點(diǎn)或從節(jié)點(diǎn)可以為以下之一 1、對數(shù)據(jù)源 進(jìn)行處理、修改、讀取、加工、或丟棄的數(shù)據(jù)節(jié)點(diǎn);2、根據(jù)規(guī)則策略確定數(shù)據(jù)源流向的連接節(jié) 點(diǎn)。此外,上述一個或多個流節(jié)點(diǎn)在系統(tǒng)中的存在方式可以為以下之一獨(dú)立進(jìn)程方式、線 程方式、線程池方式。也就是說,本發(fā)明實(shí)施例中的流節(jié)點(diǎn)被定義為加載入系統(tǒng),并且建立完成完整的 數(shù)據(jù)輸入輸出連接的插件,流節(jié)點(diǎn)一旦加載入系統(tǒng),將依據(jù)輸入輸出依賴節(jié)點(diǎn)獲取或輸出 數(shù)據(jù)。在本發(fā)明實(shí)施例中,流節(jié)點(diǎn)的靈活定義使其具有豐富的多樣性,既可以以單獨(dú)的 進(jìn)程獨(dú)立存在,也可以以線程及線程池存在,另外根據(jù)系統(tǒng)的要求,可以以分布式的方式存 在,還可以是簡單的程序處理過程。根據(jù)這些不同的方式,實(shí)際上流節(jié)點(diǎn)可以被定義為主節(jié)點(diǎn)和從節(jié)點(diǎn)兩種類型。其中,主節(jié)點(diǎn)是本身能夠獨(dú)立存在的,其需要主動獲取數(shù)據(jù)源。從節(jié)點(diǎn)不能作為任務(wù)的單獨(dú)體 存在,其數(shù)據(jù)源依賴于主節(jié)點(diǎn)的派發(fā)。數(shù)據(jù)節(jié)點(diǎn)和連接節(jié)點(diǎn)根據(jù)需要可以選擇作為系統(tǒng)的 主節(jié)點(diǎn)或從節(jié)點(diǎn)。數(shù)據(jù)節(jié)點(diǎn)主要對數(shù)據(jù)內(nèi)容進(jìn)行處理,修改,讀取,加工,本身一般不會控制數(shù)據(jù)流 的轉(zhuǎn)向,但能夠進(jìn)行數(shù)據(jù)的丟棄。連接節(jié)點(diǎn)本身不對數(shù)據(jù)內(nèi)容進(jìn)行處理,只是根據(jù)一定的策 略以及規(guī)則決定數(shù)據(jù)流的走向。每個處理過程實(shí)際上就是有向圖里面的一個流線路,在實(shí)際過程中,流線路是根 據(jù)配置需要以插件形式加載入系統(tǒng)的有向圖中的。獲取數(shù)據(jù)源以及對處理結(jié)果輸出和丟棄 都是由上述以插件形式加載入系統(tǒng)的流線路來完成的。每個插件(即,流節(jié)點(diǎn))實(shí)際上既 可以作為系統(tǒng)的一個附加處理過程加載調(diào)用及卸載,也可以在系統(tǒng)中以獨(dú)立的進(jìn)程方式存 在,這些都可以靈活的根據(jù)系統(tǒng)需要配置。和其它絕大部分的插件技術(shù)不同的是,本發(fā)明實(shí)施例中的每個插件可以以獨(dú)立的 進(jìn)程存在于系統(tǒng)之中,具有非常好的可移植性以及方便的獨(dú)立可配置性。每個插件均可以 配置為主動和被動模式,可以保證在這個基于流的系統(tǒng)中,事件能夠像流一樣自動驅(qū)動流 動。在步驟101中,預(yù)定模式可以為以下之一以獨(dú)立執(zhí)行主體存在的主動模式、被上 游流節(jié)點(diǎn)或進(jìn)程作為參數(shù)調(diào)用的被動模式。多條的流線路組成了有向圖,而這些流線路是大多數(shù)情況下共享獲取的數(shù)據(jù)事件 源,處理過程,甚至輸出。把多個處理流程合并共享,數(shù)據(jù)的獲取處理輸出過程實(shí)際上就是 一條或多條有向路徑的流經(jīng)過程。本發(fā)明實(shí)施例實(shí)現(xiàn)了流驅(qū)動引擎自動驅(qū)動數(shù)據(jù)及事件的 流動過程。根據(jù)有向圖的起始節(jié)點(diǎn)A和起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的啟動模式可以分為四種情 況情況一,起始節(jié)點(diǎn)A為主動模式,起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA為主動模式。在這種情況下,流線路通過起始節(jié)點(diǎn)A的事件緩沖池,以獨(dú)立執(zhí)行體方式主動獲 取事件,并將執(zhí)行處理后的事件緩存于起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的事件緩沖池中,起始節(jié)點(diǎn)后 驅(qū)節(jié)點(diǎn)NA接著從起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的事件緩沖池中取得他需要處理的事件進(jìn)行處理, 起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的后驅(qū)節(jié)點(diǎn)依次類推。情況二,起始節(jié)點(diǎn)A為主動模式,起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA為被動模式。在這種情況下,流線路通過起始節(jié)點(diǎn)A的事件緩沖池,以獨(dú)立執(zhí)行體方式主動獲 取事件,執(zhí)行完成后,將處理后的事件作為起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的處理參數(shù)執(zhí)行起始節(jié)點(diǎn) 后驅(qū)節(jié)點(diǎn)NA的處理過程,起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的后驅(qū)節(jié)點(diǎn)依次類推。情況三,起始節(jié)點(diǎn)A為被動模式,起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA為主動模式。在這種情況下,流線路中起始節(jié)點(diǎn)A的事件由主進(jìn)程提供作為參數(shù)調(diào)用起始節(jié)點(diǎn) A的處理過程,執(zhí)行后的事件放置于起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的事件緩沖池,起始節(jié)點(diǎn)后驅(qū)節(jié) 點(diǎn)NA以獨(dú)立執(zhí)行體從起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的事件緩沖池獲取事件執(zhí)行,起始節(jié)點(diǎn)后驅(qū)節(jié) 點(diǎn)NA的后驅(qū)節(jié)點(diǎn)依次類推。情況四,起始節(jié)點(diǎn)A為被動模式,起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA為被動模式。在這種情況下,流線路中起始節(jié)點(diǎn)A和起始節(jié)點(diǎn)后驅(qū)節(jié)點(diǎn)NA的事件皆由上游前驅(qū) 節(jié)點(diǎn)作為參數(shù)調(diào)用,實(shí)際上能夠簡化成為串行插件處理模式。
以上這四種模式可以根據(jù)配置需要在任意兩個獨(dú)立流節(jié)點(diǎn)間建立并且可以隨時 根據(jù)需要改變,而這種兩個節(jié)點(diǎn)前后驅(qū)動的事件驅(qū)動處理過程構(gòu)成了整個流系統(tǒng)的事件處 理過程,也就把整個系統(tǒng)從起始輸入到最終輸出的流線路的各個節(jié)點(diǎn)均驅(qū)動起來了,使得 整個系統(tǒng)源源不斷,有事件輸入,整個系統(tǒng)有機(jī)組織運(yùn)行,配合驅(qū)動事件從輸入到輸出的整 個處理過程。步驟102,由一個或多個流線路從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源,對數(shù)據(jù)源進(jìn)行處理,并將 處理結(jié)果進(jìn)行輸出或丟棄處理。需要說明的是,一個或多個流線路可以共享數(shù)據(jù)源、處理過程、和/或處理結(jié)果。 在本發(fā)明實(shí)施例中,某些處理過程根據(jù)系統(tǒng)需要及效率要求,可能需要并行處理,在本發(fā)明 實(shí)施例中,可以采用并行方式對數(shù)據(jù)源進(jìn)行處理,實(shí)現(xiàn)了線程池及進(jìn)程池滿足某些處理過 程的并行要求,并實(shí)現(xiàn)了整個流系統(tǒng)的多條流線路的數(shù)據(jù)流在驅(qū)動并行輸入、并行處理、并 行輸出。大部分事件及數(shù)據(jù),有可能被多個處理節(jié)點(diǎn)共享,并且很多情況下需要并行處理, 圖2是本發(fā)明實(shí)施例的事件拷貝方式獲取數(shù)據(jù)源的示意圖,如圖2所示,每個事件都需要拷 貝事件數(shù)據(jù),在這種情況下每個節(jié)點(diǎn)都給這些事件數(shù)據(jù)重新分配內(nèi)存空間并拷貝,既浪費(fèi) 內(nèi)存資源也浪費(fèi)處理器資源。因此,在本發(fā)明實(shí)施例中,一個或多個流線路可以通過引用的 方式從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源,其中,引用方式為在數(shù)據(jù)使用之間對數(shù)據(jù)進(jìn)行引用,在使用 完數(shù)據(jù)后對承載的數(shù)據(jù)予以釋放。使用引用技術(shù)可以很大程度上解決這個問題。圖3是本 發(fā)明實(shí)施例的通過引用方式獲取數(shù)據(jù)源的示意圖,如圖3所示,在數(shù)據(jù)的流轉(zhuǎn)過程中基本 上不需要對數(shù)據(jù)進(jìn)行拷貝操作,而只在合適時候?qū)⒊休d的數(shù)據(jù)資源予以引用或釋放即可。目前很多采用串處理方式和插件處理方式由于其自身的局限無法利用引用技術(shù), 而是通過線性處理并且反復(fù)分配內(nèi)存空間,浪費(fèi)了系統(tǒng)資源。通過上述引用技術(shù),真正實(shí) 現(xiàn)了將事件及數(shù)據(jù)的處理過程變成了流的處理過程,保證了高可靠的多事件的并行高效處 理,減少了大量數(shù)據(jù)及事件的無謂分配內(nèi)存空間及拷貝。步驟102中,在由一個或多個流線路從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源之后,可以由一個或 多個流線路中的流節(jié)點(diǎn)通過流過濾器派發(fā)數(shù)據(jù)源,其中,流過濾器的派發(fā)策略包括以下至 少之一共享分發(fā)、復(fù)制分發(fā)、匹配獨(dú)占、丟棄、緩存、私有分發(fā)。具體地,網(wǎng)絡(luò)或者應(yīng)用程序的事件以及數(shù)據(jù)在系統(tǒng)中可以視為流,連接節(jié)點(diǎn)對數(shù) 據(jù)流根據(jù)一定的系統(tǒng)配置,以及實(shí)際情況決定流轉(zhuǎn)方向。派發(fā)策略大致可以分為共享分發(fā), 復(fù)制分發(fā),匹配獨(dú)占,私有分發(fā),丟棄,緩存。1、共享分發(fā)此時連接節(jié)點(diǎn)是作為主節(jié)點(diǎn)存在于系統(tǒng),每個直接下游數(shù)據(jù)節(jié)點(diǎn)都 是被視為從節(jié)點(diǎn)。每個下游數(shù)據(jù)節(jié)點(diǎn)都對該數(shù)據(jù)單元共享引用。所以在大部分情況下,這 些數(shù)據(jù)節(jié)點(diǎn)都不會對數(shù)據(jù)進(jìn)行再加工,因?yàn)楹芸赡苡绊懙絼e的數(shù)據(jù)節(jié)點(diǎn)甚至是其下游節(jié)點(diǎn) 的處理和走向,即使是有部分節(jié)點(diǎn)需要數(shù)據(jù)再加工,也必須保證該節(jié)點(diǎn)的修改不會對連接 節(jié)點(diǎn)的其它任何子孫節(jié)點(diǎn)的數(shù)據(jù)處理和流向產(chǎn)生影響。2、復(fù)制分發(fā)此時連接節(jié)點(diǎn)是作為主節(jié)點(diǎn)存在于系統(tǒng),在部分情況下,可能有多 個從節(jié)點(diǎn)對數(shù)據(jù)讀寫,可以在連接節(jié)點(diǎn)處根據(jù)需要,對數(shù)據(jù)單元復(fù)制一份,派發(fā)給下游從節(jié)
點(diǎn)ο3、匹配獨(dú)占此時連接節(jié)點(diǎn)是作為主節(jié)點(diǎn)存在于系統(tǒng),下游數(shù)據(jù)節(jié)點(diǎn)依次匹配是否本節(jié)點(diǎn)有權(quán)限執(zhí)行,如果確定屬于該下游數(shù)據(jù)節(jié)點(diǎn)職責(zé)范圍的,則將該數(shù)據(jù)直接派發(fā)給 該下游數(shù)據(jù)節(jié)點(diǎn)。該數(shù)據(jù)節(jié)點(diǎn)在數(shù)據(jù)處理完成后需要釋放引用以及隊(duì)列引用。4、丟棄此時連接節(jié)點(diǎn)是作為主節(jié)點(diǎn)存在于系統(tǒng),數(shù)據(jù)流至此已完成使命,不再向 下游數(shù)據(jù)節(jié)點(diǎn)流動,釋放引用及隊(duì)列引用。5、緩存此時連接節(jié)點(diǎn)可以看作是從節(jié)點(diǎn),隊(duì)列引用緩存入系統(tǒng),由下游主節(jié)點(diǎn)釋 放隊(duì)列引用。6、私有分發(fā)此時連接節(jié)點(diǎn)是作為主節(jié)點(diǎn)存在于系統(tǒng),可以根據(jù)一定的配置策略, 對特定的下游數(shù)據(jù)節(jié)點(diǎn)采用上面的一種或幾種策略的組合。也就是說,流過濾器能夠根據(jù)系統(tǒng)配置對過往數(shù)據(jù)及事件進(jìn)行匹配、應(yīng)用策略。在本發(fā)明實(shí)施例中,每個流節(jié)點(diǎn)均擁有事件流的過濾器,通過多個匹配和對應(yīng)策 略實(shí)現(xiàn)有向圖路徑的選擇及派發(fā)。在現(xiàn)有技術(shù)中,一般都只是在最終輸出的時候才有流過 濾器,中間處理過程大部分都是已經(jīng)在編碼過程寫入程序。而本發(fā)明實(shí)施例的事件過濾器 流系統(tǒng)的每個節(jié)點(diǎn)皆安裝有事件的流過濾器,隨時可以改變事件的下一個輸出方向的處理 策略,相比之下相當(dāng)靈活,而且這些流過濾器可以配置決定事件的處理策略是什么,并不需 要在編碼里面明確。此外,流過濾器和前面的引用技術(shù)相結(jié)合可以對多個下游后驅(qū)節(jié)點(diǎn)派 發(fā)事件并行處理。這是現(xiàn)有技術(shù)中其它有流過濾器的系統(tǒng)所做不到的。步驟102中,在對數(shù)據(jù)源進(jìn)行處理之后,一個或多個流線路中的流節(jié)點(diǎn)通過位圖 技術(shù)為流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)配置標(biāo)簽。也就是說,在有向圖中,可以使用位圖技術(shù)實(shí)現(xiàn)每個數(shù)據(jù)及事件的“標(biāo)簽”功能。每 個事件及數(shù)據(jù)在有向圖的流經(jīng)途徑中都會被流經(jīng)的節(jié)點(diǎn)打上“標(biāo)簽”。這些“標(biāo)簽”是一個 數(shù)據(jù)流的歷史,某些時候這些“標(biāo)簽”會在決定數(shù)據(jù)流向上發(fā)揮決定性作用。在實(shí)際部署中,可以根據(jù)實(shí)際需要,根據(jù)配置文件在單臺或多臺設(shè)備構(gòu)建一個網(wǎng) 絡(luò)事件處理的有向圖。以下對進(jìn)程內(nèi)部署、進(jìn)程間部署、分布式部署進(jìn)行詳細(xì)的說明。圖4是本發(fā)明實(shí)施例的進(jìn)程內(nèi)部署的結(jié)構(gòu)示意圖,如圖4所示,進(jìn)程與兩個連接節(jié) 點(diǎn)相連接,每個連接節(jié)點(diǎn)下又連接了多個數(shù)據(jù)節(jié)點(diǎn)和連接節(jié)點(diǎn),流處理系統(tǒng)數(shù)據(jù)源及目的 輸出均來自于進(jìn)程內(nèi)部。圖5是本發(fā)明實(shí)施例的進(jìn)程間部署的結(jié)構(gòu)示意圖,如圖5所示,在進(jìn)程1和進(jìn)程2 下部署了多個連接節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn),實(shí)際應(yīng)用中,在需要使用到多進(jìn)程獲取事件源或者輸 出到多進(jìn)程時,可以使用這種方式部署。圖6是本發(fā)明實(shí)施例的分布式部署的結(jié)構(gòu)示意圖,如圖6所示,在主機(jī)1和主機(jī)2 下部署了多個連接節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn),從而實(shí)現(xiàn)多臺設(shè)備的分布式部署。綜上所述,借助于本發(fā)明的技術(shù)方案,通過將一個或多個流節(jié)點(diǎn)以插件形式加載 入系統(tǒng),解決了現(xiàn)有技術(shù)在網(wǎng)絡(luò)事件處理過程中移植性差的問題,能夠方便快捷的對計(jì)算 機(jī)進(jìn)行配置部署及調(diào)試,最大效率的對網(wǎng)絡(luò)事件進(jìn)行并行處理,并降低系統(tǒng)資源消耗,具有 高可靠的移植性。此外,通過節(jié)點(diǎn)的配置部署于分布式系統(tǒng)的多臺主機(jī)及進(jìn)程中,可以實(shí)現(xiàn) 整個分布式集群的協(xié)同工作。本發(fā)明實(shí)施例實(shí)現(xiàn)了多事件源、多輸出的高效并行事件處理系統(tǒng),該系統(tǒng)可以根 據(jù)需要非常靈活方便的以插件系統(tǒng)或者獨(dú)立的方式構(gòu)建一個事件處理系統(tǒng)或者分布式事 件處理系統(tǒng),克服了現(xiàn)有技術(shù)中在同類產(chǎn)品中對于事件的處理中通用的串行實(shí)現(xiàn)及處理方法的缺點(diǎn),將流技術(shù)運(yùn)用于事件處理,通過模塊化的插件配置加載構(gòu)建,并將有向圖融入本 發(fā)明實(shí)施例的技術(shù)方案,很大程度提升了系統(tǒng)的并行性能以及模塊化,此外,采用的引用技 術(shù)也很大程度上幫助提升了并行多事件流處理方法的效率。本發(fā)明實(shí)施例中的事件處理模塊對開發(fā)者是透明的,決大部分情況下開發(fā)者并不 需要了解整個系統(tǒng)的設(shè)計(jì)以及其它的事件處理過程的設(shè)計(jì),也不需要了解系統(tǒng)的部署,而 只需要針對當(dāng)前處理過程按照一定的模板開發(fā)即可,從而保證了在大規(guī)模的事件處理系統(tǒng) 應(yīng)用開發(fā)過程中,模塊化能夠得到更有效的體現(xiàn)。盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域的技術(shù)人員將意識到 各種改進(jìn)、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當(dāng)不限于上述實(shí)施例。
權(quán)利要求
一種網(wǎng)絡(luò)事件處理方法,其特征在于,包括根據(jù)系統(tǒng)配置以預(yù)定模式將一個或多個流節(jié)點(diǎn)以插件形式加載入系統(tǒng),并由所述一個或多個流節(jié)點(diǎn)組成有向圖中的一個或多個流線路;由所述一個或多個流線路從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源,對所述數(shù)據(jù)源進(jìn)行處理,并將處理結(jié)果進(jìn)行輸出或丟棄處理。
2.如權(quán)利要求1所述的方法,其特征在于,所述一個或多個流節(jié)點(diǎn)包括獲取并派發(fā)所述數(shù)據(jù)源的主節(jié)點(diǎn)、以及對派發(fā)的所述數(shù) 據(jù)源進(jìn)行處理的從節(jié)點(diǎn);所述主節(jié)點(diǎn)或所述從節(jié)點(diǎn)為以下之一對所述數(shù)據(jù)源進(jìn)行處理、修改、讀取、加工、或丟 棄的數(shù)據(jù)節(jié)點(diǎn)、根據(jù)規(guī)則策略確定所述數(shù)據(jù)源流向的連接節(jié)點(diǎn)。
3.如權(quán)利要求1所述的方法,其特征在于,所述一個或多個流節(jié)點(diǎn)部署于分布式系統(tǒng) 的多臺主機(jī)和進(jìn)程中。
4.如權(quán)利要求1所述的方法,其特征在于,所述一個或多個流節(jié)點(diǎn)在所述系統(tǒng)中的存 在方式為以下之一獨(dú)立進(jìn)程方式、過程體方式、線程池方式。
5.如權(quán)利要求1所述的方法,其特征在于,所述一個或多個流線路共享所述數(shù)據(jù)源、處 理過程、和/或所述處理結(jié)果。
6.如權(quán)利要求1所述的方法,其特征在于,所述一個或多個流線路采用并行方式對所 述數(shù)據(jù)源進(jìn)行處理。
7.如權(quán)利要求1所述的方法,其特征在于,所述一個或多個流線路從系統(tǒng)進(jìn)程獲取數(shù) 據(jù)源包括所述一個或多個流線路通過引用的方式從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源,其中,所述引用方式 為在數(shù)據(jù)使用之前對所述數(shù)據(jù)進(jìn)行引用,不重復(fù)對所述數(shù)據(jù)進(jìn)行拷貝,在使用完所述數(shù)據(jù) 后對承載的所述數(shù)據(jù)予以釋放。
8.如權(quán)利要求1所述的方法,其特征在于,所述預(yù)定模式為以下之一以獨(dú)立執(zhí)行主體 存在的主動模式、被上游流節(jié)點(diǎn)或進(jìn)程作為參數(shù)調(diào)用的被動模式。
9.如權(quán)利要求1所述的方法,其特征在于,在由所述一個或多個流線路從系統(tǒng)進(jìn)程獲 取數(shù)據(jù)源之后,所述方法還包括由所述一個或多個流線路中的流節(jié)點(diǎn)通過流過濾器派發(fā)所述數(shù)據(jù)源,其中,所述流過 濾器的派發(fā)策略包括以下至少之一共享分發(fā)、復(fù)制分發(fā)、匹配獨(dú)占、丟棄、緩存、私有分發(fā)。
10.如權(quán)利要求1所述的方法,其特征在于,在由所述一個或多個流線路對所述數(shù)據(jù)源 進(jìn)行處理之后,所述方法還包括所述一個或多個流線路中的流節(jié)點(diǎn)通過位圖技術(shù)為流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)配置標(biāo)簽。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)事件處理方法,該方法包括根據(jù)系統(tǒng)配置以預(yù)定模式將一個或多個流節(jié)點(diǎn)以插件形式加載入系統(tǒng),并由一個或多個流節(jié)點(diǎn)組成有向圖中的一個或多個流線路;由一個或多個流線路從系統(tǒng)進(jìn)程獲取數(shù)據(jù)源,對數(shù)據(jù)源進(jìn)行處理,并將處理結(jié)果進(jìn)行輸出或丟棄處理。借助于本發(fā)明的技術(shù)方案,解決了現(xiàn)有技術(shù)在網(wǎng)絡(luò)事件處理過程中移植性差的問題,能夠方便快捷的對計(jì)算機(jī)進(jìn)行配置部署及調(diào)試,最大效率的對網(wǎng)絡(luò)事件進(jìn)行并行處理,并降低系統(tǒng)資源消耗,具有高可靠的移植性。
文檔編號G06F9/44GK101923471SQ20101026333
公開日2010年12月22日 申請日期2010年8月26日 優(yōu)先權(quán)日2010年8月26日
發(fā)明者曹紹芬 申請人:北京天融信科技有限公司