連續(xù)數(shù)據(jù)流上的可變持續(xù)時(shí)間窗口的制作方法
【專利說明】
[0001] 對(duì)相關(guān)申請(qǐng)的交叉引用
[0002] 本申請(qǐng)要求于2013年1月15日提交的標(biāo)題為"VARIABLE DURATION WINDOWS 0N CONTINUOUS DATA STREAMS"的美國(guó)臨時(shí)申請(qǐng)No. 61/752, 850的權(quán)益和優(yōu)先權(quán)。本申請(qǐng)還要 求于 2013 年 3 月 15 日提交的標(biāo)題為 "VARIABLE DURATION WINDOWS ON CONTINUOUS DATA STREAMS"的美國(guó)非臨時(shí)申請(qǐng)No. 13/838, 259的權(quán)益和優(yōu)先權(quán),該申請(qǐng)又要求美國(guó)臨時(shí)申請(qǐng) No. 61/752, 850的優(yōu)先權(quán)。61/752, 850和13/838, 259申請(qǐng)的全部?jī)?nèi)容通過引入被結(jié)合于 此,用于所有目的。
技術(shù)領(lǐng)域
[0003] 所公開的實(shí)施例一般而言涉及數(shù)據(jù)處理系統(tǒng),并且更具體而言涉及用于利用可變 持續(xù)時(shí)間窗口處理連續(xù)事件流的技術(shù)。
【背景技術(shù)】
[0004] 在傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)通常以表的形式存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中。然后, 所存儲(chǔ)的數(shù)據(jù)利用諸如SQL的數(shù)據(jù)管理語(yǔ)言被查詢和操縱。例如,SQL查詢可以被定義并 執(zhí)行,以便從存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)識(shí)別相關(guān)的數(shù)據(jù)。因此,SQL查詢對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的 有限數(shù)據(jù)集執(zhí)行。另外,當(dāng)SQL查詢被執(zhí)行時(shí),它對(duì)有限數(shù)據(jù)集執(zhí)行一次并且產(chǎn)生有限的靜 態(tài)結(jié)果。因此,數(shù)據(jù)庫(kù)最佳配備為在有限存儲(chǔ)的數(shù)據(jù)集上運(yùn)行。
[0005] 但是,眾多的現(xiàn)代應(yīng)用和系統(tǒng)以連續(xù)數(shù)據(jù)或事件流而不是有限數(shù)據(jù)集的形式生成 數(shù)據(jù)。這種應(yīng)用的例子包括但不限于傳感器數(shù)據(jù)應(yīng)用、金融行情(financial tickers)、網(wǎng) 絡(luò)性能測(cè)量工具(例如,網(wǎng)絡(luò)監(jiān)視和流量管理應(yīng)用)、點(diǎn)擊流分析工具、汽車交通監(jiān)視,等 等。例如,溫度傳感器可被配置為發(fā)出溫度讀數(shù)。這種應(yīng)用已經(jīng)引起了對(duì)可以處理數(shù)據(jù)流 的新型應(yīng)用的需求。
[0006] 管理和處理用于這些類型的基于事件流的應(yīng)用的數(shù)據(jù)涉及利用強(qiáng)時(shí)間焦點(diǎn)建立 數(shù)據(jù)管理和查詢能力。需要包括對(duì)連續(xù)無界限數(shù)據(jù)集進(jìn)行長(zhǎng)期運(yùn)行查詢的不同種類的查詢 機(jī)制。雖然一些廠商現(xiàn)在提供針對(duì)事件流處理的產(chǎn)品套件,但是這些產(chǎn)品供應(yīng)仍然缺乏處 理如今的事件處理需求所需要的處理靈活性。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的某些實(shí)施例一般而言涉及數(shù)據(jù)處理系統(tǒng),并且更具體而言涉及利用可變 持續(xù)時(shí)間的窗口處理連續(xù)事件流的技術(shù)。技術(shù)可以包括,例如,利用對(duì)事件數(shù)據(jù)流操作的計(jì) 算機(jī)實(shí)現(xiàn)的方法實(shí)現(xiàn)的技術(shù),處理事件數(shù)據(jù)流的計(jì)算設(shè)備、系統(tǒng)或裝置,存儲(chǔ)可由一個(gè)或多 個(gè)處理單元執(zhí)行的多條指令的計(jì)算機(jī)可讀存儲(chǔ)器,等等。
[0008] 在某些實(shí)施例中,事件有資格保留在基于時(shí)間的窗口中的持續(xù)時(shí)間可以對(duì)經(jīng)由相 同事件流接收的不同事件變化。例如,對(duì)于經(jīng)由事件流接收的第一輸入事件,第一事件有資 格保留在基于時(shí)間的窗口中的持續(xù)時(shí)間可以是"X",并且對(duì)于經(jīng)由相同事件流接收的第二 輸入事件,第二事件有資格保留在基于時(shí)間的窗口中的持續(xù)時(shí)間可以是"Y",其中X與Y不 同。第一和第二事件可以具有相同的關(guān)聯(lián)時(shí)間戳或不同的時(shí)間戳。因此,本發(fā)明的實(shí)施例 使得事件在基于時(shí)間的窗口中所花費(fèi)的時(shí)間量受控。
[0009] 在某些實(shí)施例中,輸入事件在基于時(shí)間的窗口中所花費(fèi)的持續(xù)時(shí)間是該事件的一 個(gè)或多個(gè)屬性的一個(gè)或多個(gè)值的函數(shù)。由于不同的事件可以具有不同的一個(gè)或多個(gè)屬性 值,因此不同的事件可以在基于時(shí)間的窗口中花費(fèi)不同的時(shí)間量。這使得事件在基于時(shí)間 的窗口中所花費(fèi)的時(shí)間量能夠經(jīng)由該事件的一個(gè)或多個(gè)屬性來控制。
[0010] 在一種實(shí)施例中,多個(gè)事件可以被計(jì)算設(shè)備經(jīng)由事件流接收。例如,第一事件和第 二事件可以經(jīng)由事件流接收。第一持續(xù)時(shí)間可以為第一事件確定,其中第一持續(xù)時(shí)間指示 第一事件有資格保留在為該事件流指定的基于時(shí)間的窗口中的持續(xù)時(shí)間。第二持續(xù)時(shí)間可 以為第二事件確定,其中第二持續(xù)時(shí)間指示第二事件有資格保留在該基于時(shí)間的窗口中的 持續(xù)時(shí)間,其中第二持續(xù)時(shí)間不同于第一持續(xù)時(shí)間。
[0011] 在某些實(shí)施例中,第一和第二事件可以添加到為事件流指定的基于時(shí)間的窗口。 第一事件保留在基于時(shí)間的窗口中第一持續(xù)時(shí)間,然后從基于時(shí)間的窗口除去或刪除。第 二事件保留在基于時(shí)間的窗口中第二持續(xù)時(shí)間,然后從基于時(shí)間的窗口除去或刪除。以這 種方式,第一事件在基于時(shí)間的窗口內(nèi)所花費(fèi)的持續(xù)時(shí)間可以不同于第二事件在基于時(shí)間 的窗口內(nèi)所花費(fèi)的持續(xù)時(shí)間。
[0012] 在上述第一和第二事件示例實(shí)施例中,第一事件可以具有關(guān)聯(lián)的第一時(shí)間并且第 二事件可以具有關(guān)聯(lián)的第二時(shí)間。在一種情況下,第一時(shí)間和第二時(shí)間可以相同。在第二 種情況下,第一時(shí)間可以與第二時(shí)間不同。
[0013] 在某些實(shí)施例中,事件有資格在基于時(shí)間的窗口內(nèi)花費(fèi)的持續(xù)時(shí)間可以基于該事 件的一個(gè)或多個(gè)屬性的值。
[0014] 在某些實(shí)施例中,行-時(shí)間范圍窗口可以是不同的分區(qū)。事件所屬的分區(qū)可以基 于第一事件的屬性的值。事件有資格在用于分區(qū)的行-時(shí)間范圍窗口內(nèi)花費(fèi)的時(shí)間量可以 基于該事件的一個(gè)或多個(gè)屬性的一個(gè)或多個(gè)值。因此,對(duì)于屬于特定分區(qū)的事件,不同的事 件可以有資格在用于特定分區(qū)的行-時(shí)間范圍窗口中花費(fèi)不同的持續(xù)時(shí)間。
[0015] 在某些實(shí)施例中,基于與第一事件關(guān)聯(lián)的第一時(shí)間和第一持續(xù)時(shí)間,可以為第一 事件計(jì)算第一到期時(shí)間?;谂c第二事件關(guān)聯(lián)的第二時(shí)間和第二持續(xù)時(shí)間,可以為第二事 件計(jì)算第二到期時(shí)間。在第一到期時(shí)間發(fā)生時(shí)或者之后,第一事件從基于時(shí)間的窗口被除 去或刪除。同樣,在第二到期時(shí)間發(fā)生時(shí)或者之后,第二事件可以從基于時(shí)間的窗口被除去 或刪除。
[0016] 根據(jù)本公開內(nèi)容的一方面,提供了計(jì)算設(shè)備。計(jì)算設(shè)備包括配置為確定用于第一 事件的第一持續(xù)時(shí)間的第一確定單元,其中第一事件是由計(jì)算設(shè)備經(jīng)由事件流接收的,第 一持續(xù)時(shí)間指示第一事件有資格保留在為事件流指定的基于時(shí)間的窗口中的持續(xù)時(shí)間。計(jì) 算設(shè)備可以包括配置為確定用于第二事件的第二持續(xù)時(shí)間的第二確定單元,其中第二事件 是由計(jì)算設(shè)備經(jīng)由事件流接收的,第二持續(xù)時(shí)間指示第二事件有資格保留在該基于時(shí)間的 窗口中的持續(xù)時(shí)間。第二持續(xù)時(shí)間可以不同于第一持續(xù)時(shí)間。
[0017] 在某些實(shí)施例中,計(jì)算設(shè)備還包括配置為在第一時(shí)間事件已經(jīng)在基于時(shí)間的窗口 中第一持續(xù)時(shí)間之后從基于時(shí)間的窗口除去第一事件的第一去除單元,以及配置為在第二 時(shí)間事件已經(jīng)在基于時(shí)間的窗口中第二持續(xù)時(shí)間之后從基于時(shí)間的窗口除去第二事件的 第二去除單元。
[0018] 在某些實(shí)施例中,第一事件具有關(guān)聯(lián)的第一時(shí)間并且第二事件具有關(guān)聯(lián)的第二時(shí) 間,其中第一時(shí)間與第二時(shí)間相同。
[0019] 在某些實(shí)施例中,第一事件具有關(guān)聯(lián)的第一時(shí)間并且第二事件具有關(guān)聯(lián)的第二時(shí) 間,其中第一時(shí)間與第二時(shí)間不同。
[0020] 在某些實(shí)施例中,確定第一持續(xù)時(shí)間包括基于第一事件的一個(gè)或多個(gè)屬性的一個(gè) 或多個(gè)值計(jì)算第一持續(xù)時(shí)間。另外,確定第二持續(xù)時(shí)間包括基于第二事件的一個(gè)或多個(gè)屬 性的一個(gè)或多個(gè)值計(jì)算第二持續(xù)時(shí)間。
[0021] 在某些實(shí)施例中,第一確定單元配置為基于第一事件的第一屬性的值確定用于第 一事件的第一分區(qū)。第二確定單元配置為基于第二事件的第一屬性的值確定第二事件屬于 第一分區(qū)。基于時(shí)間的窗口用于該第一分區(qū)。
[0022] 在某些實(shí)施例中,第一確定單元配置為基于與第一事件關(guān)聯(lián)的第一時(shí)間和第一持 續(xù)時(shí)間確定用于第一事件的第一到期時(shí)間。第二確定單元配置為基于與第二事件關(guān)聯(lián)的第 二時(shí)間和第二持續(xù)時(shí)間確定用于第二事件的第二到期時(shí)間。第一去除單元配置為在第一到 期時(shí)間發(fā)生時(shí)或者之后從基于時(shí)間的窗口除去第一事件。第二去除單元配置為在第二到期 時(shí)間發(fā)生時(shí)或者之后從基于時(shí)間的窗口除去第二事件。
[0023] 以下具體描述與附圖一起將提供對(duì)本發(fā)明實(shí)施例的本質(zhì)的更好理解。
【附圖說明】
[0024] 圖1繪出了可以結(jié)合本發(fā)明實(shí)施例的事件處理系統(tǒng)的簡(jiǎn)化高級(jí)圖。
[0025] 圖2繪出了根據(jù)本發(fā)明實(shí)施例描繪用于管理可變持續(xù)時(shí)間窗口的方法的簡(jiǎn)化流 程圖。
[0026] 圖3繪出了根據(jù)本發(fā)明實(shí)施例可以用來實(shí)現(xiàn)基于可變持續(xù)時(shí)間的窗口處理的模 塊和數(shù)據(jù)結(jié)構(gòu)。
[0027] 圖4繪出了描繪在如上所述的優(yōu)先級(jí)隊(duì)列用來實(shí)現(xiàn)基于可變持續(xù)時(shí)間的窗口的 實(shí)施例中可以由基于事件的窗口操作器(operator)執(zhí)行的處理的簡(jiǎn)化流程圖。
[0028] 圖5繪出了根據(jù)本發(fā)明實(shí)施例描繪用于管理用于分區(qū)的可變持續(xù)時(shí)間窗口的方 法的簡(jiǎn)化流程圖。
[0029] 圖6繪出了根據(jù)本發(fā)明實(shí)施例描繪可以由基于時(shí)間的窗口操作器執(zhí)行的用于利 用優(yōu)先權(quán)隊(duì)列處理用于分區(qū)的可變持續(xù)時(shí)間窗口的處理的簡(jiǎn)化流程圖。
[0030] 圖7是說明可以根據(jù)本發(fā)明實(shí)施例使用的系統(tǒng)環(huán)境的部件的簡(jiǎn)化框圖。
[0031] 圖8是可以根據(jù)本發(fā)明某些實(shí)施例使用的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化框圖。
[0032] 圖9是可以根據(jù)本發(fā)明某些實(shí)施例使用的計(jì)算設(shè)備的簡(jiǎn)化框圖。
【具體實(shí)施方式】
[0033] 在以下描述中,為了解釋,闡述具體的細(xì)節(jié),以便提供對(duì)本發(fā)明實(shí)施例的透徹理 解。但是,應(yīng)當(dāng)認(rèn)識(shí)到,各種實(shí)施例沒有這些具體細(xì)節(jié)也可以實(shí)踐。附圖和描述不是約束性 的。
[0034] 描述了提供用于處理數(shù)據(jù)流的改進(jìn)技術(shù)的某些實(shí)施例。事件有資格保留在基于時(shí) 間的窗口內(nèi)的持續(xù)時(shí)間可以對(duì)經(jīng)由相同事件流接收的不同事件變化。在某些實(shí)施例中,輸 入事件在基于時(shí)間的窗口內(nèi)花費(fèi)的持續(xù)時(shí)間是該事件的一個(gè)或多個(gè)屬性的一個(gè)或多個(gè)值 的函數(shù)。由于不同的事件可以具有不同的一個(gè)或多個(gè)屬性值,因此不同的事件可以在用于 那個(gè)事件流的基于時(shí)間的窗口內(nèi)花費(fèi)不同的時(shí)間量。事件在基于時(shí)間的窗口內(nèi)花費(fèi)的時(shí)間 量可以經(jīng)由該事件的一個(gè)或多個(gè)屬性來控制。
[0035] 連續(xù)的數(shù)據(jù)流(也被稱為事件流或事件數(shù)據(jù)流)是本質(zhì)上沒有明確結(jié)束的連續(xù)或 無界的數(shù)據(jù)或事件的流。在邏輯上,事件或數(shù)據(jù)的流是數(shù)據(jù)元素(也被稱為事件)序列,每 個(gè)數(shù)據(jù)元素具有關(guān)聯(lián)的時(shí)間戳。連續(xù)的事件流可以邏輯表示為數(shù)據(jù)元素的包(bag)或集合 (s,T),其中"s"代表數(shù)據(jù)部分并且"T"是在時(shí)間域中。"s"部分一般被稱為元組或事件。 因此,事件流是帶時(shí)間戳的元組或事件的序列。
[0036] 在一些實(shí)施例中,與流中的事件關(guān)聯(lián)的時(shí)間戳可以等同于時(shí)鐘時(shí)間。但是,在其它 實(shí)施例中,與事件流中的事件關(guān)聯(lián)的時(shí)間可以由應(yīng)用域定義并且不對(duì)應(yīng)于時(shí)鐘時(shí)間,但是 可以例如代替地由序列號(hào)表示。因此,與事件流內(nèi)的事件關(guān)聯(lián)的時(shí)間信息可以由表示時(shí)間 序列的符號(hào)的數(shù)字、時(shí)間戳或者任何其它信息表示。對(duì)于接收輸入事件流的系統(tǒng),事件按增 大的時(shí)間戳的次序到達(dá)系統(tǒng)??梢杂卸鄠€(gè)一個(gè)具有相同時(shí)間戳的事件。
[0037] 在一些實(shí)施例中,事件流中的事件可以代表一些世俗事件的發(fā)生(例如,當(dāng)溫度 傳感器把值改變成新值時(shí);當(dāng)股票代碼的價(jià)格改變時(shí))并且與事件關(guān)聯(lián)的時(shí)間信息可以指 示由數(shù)據(jù)流事件表示的世俗事件發(fā)生的時(shí)間。
[0038] 對(duì)于經(jīng)由事件流接收的事件,與事件關(guān)聯(lián)的時(shí)間信息被用來確保事件流中的事件 按增大的時(shí)間戳值的次序到達(dá)。這使得在事件流中接收的事件基于它們關(guān)聯(lián)的時(shí)間信息被 排序并處理。為了啟用這種排序,時(shí)間戳以非減小的方式與事件流中的事件關(guān)聯(lián),使得后生 成的事件具有比早生成的事件更晚的時(shí)間戳。作為另一個(gè)例子,如果序列號(hào)被用作時(shí)間信 息,則與后生成的事件關(guān)聯(lián)的序列號(hào)大于與之前生成的事件關(guān)聯(lián)的序列號(hào)。屬于相同事件 流的事件一般按照由關(guān)聯(lián)的時(shí)間信息強(qiáng)加到事件的次序處理,較早的事件在較晚的事件之 前被處理。在一些實(shí)施例中,多個(gè)事件可以與相同的時(shí)間戳或序列號(hào)關(guān)聯(lián),例如,當(dāng)由數(shù)據(jù) 流事件表示的世俗事件同時(shí)發(fā)生時(shí)。在這些情況下,事件按其接收的次序被處理。
[0039] 與事件流中事件關(guān)聯(lián)的時(shí)間信息(例如,時(shí)間戳)可以由流的源設(shè)置或者,作為替 代,可以由接收流的系統(tǒng)設(shè)置。例如,在某些實(shí)施例中,心跳可以在接收事件流的系統(tǒng)上維 護(hù),并且與事件關(guān)聯(lián)的時(shí)間可以基于事件到達(dá)系統(tǒng)的時(shí)間,如由心跳測(cè)量的。有可能事件流 中的兩個(gè)事件具有相同的時(shí)間信息。應(yīng)當(dāng)指出,雖然時(shí)間戳排序需求特定于一個(gè)事件流,但 是不同流的事件可以任意交織。
[0040] 事件流具有關(guān)聯(lián)的模式"S",該模式包括時(shí)間信息和一組一個(gè)或多個(gè)命名屬性。屬 于特定事件流的所有事件都符合與那個(gè)特定事件流關(guān)聯(lián)的模式。因此,對(duì)于事件流(S,T), 事件流可以具有模式"S" (<time_stamp>,〈attribute (s) >),其中〈attribute〉代表模式的 數(shù)據(jù)部分并且可以包括一個(gè)或多個(gè)屬性。例如,用于股票行情事件流的模式可以包括屬性 〈股票代碼〉和〈股票價(jià)格〉。每個(gè)經(jīng)由這種流接收的事件將具有時(shí)間戳和兩個(gè)屬性。例 如,股票行情事件流可以接收以下事件和關(guān)聯(lián)的時(shí)間戳:
[0041] ...
[0042] (<timestamp_N>, <NVDA, 4?
[0043] (<timestamp_N+l>, <0RCL, 62?
[0044] (<timestamp_N+2>, <PCAR, 38?
[0045] (<timestamp_N+3>, <SP0T, 53?
[0046] (<timestamp_N+4>, <PDC0, 44?
[0047] (<timestamp_N+5>, <PTEN, 50?
[0048] …
[0049] 在以上的流中,對(duì)于流元素 (〈timestamp_N+l>,〈ORCL, 62>,用于屬性"stock_ symbol "和" stock_value"的事件值分別是0RCL和62。與流元素關(guān)聯(lián)的時(shí)間戳是 "timestamp_N+l"。因此,連續(xù)事件流是事件的流,每個(gè)事件具有相同的屬性序列。
[0050] 圖1繪出了可以結(jié)合本發(fā)明實(shí)施例的事件處理系統(tǒng)100的簡(jiǎn)化高級(jí)圖。事件處理 系統(tǒng)100可以包括一個(gè)或多個(gè)事件源(104,106,108),配置為提供用于處理事件流的環(huán)境 的事件處理服務(wù)器(EPS) 102,以及一個(gè)或多個(gè)事件接收器(110,112)。事件源生成由EPS 102接收的事件流。EPS 102可以從一個(gè)或多個(gè)事件源接收一個(gè)或多個(gè)事件流。例如,如圖 1中所示,EPS 102從事件源104接收輸入事件流114,從事件源106接收第二輸入事件流 116并且從事件源108接收第三事件流118。一個(gè)或多個(gè)事件處理應(yīng)用(120、122和124) 可以部署在EPS 102上并由其執(zhí)行。由EPS 102執(zhí)行的事件處理應(yīng)用可以配置為監(jiān)聽一個(gè) 或多個(gè)輸入事件流,基于從輸入事件流選擇一個(gè)或多個(gè)事件作為值得注意的事件的處理邏 輯處理經(jīng)由一個(gè)或多個(gè)事件流接收的事件。然后,值得注意的事件可以以一個(gè)或多個(gè)輸出 事件流的形式發(fā)送到一個(gè)或多個(gè)事件接收器(110,112)。例如,在圖1中,EPS 102把輸出 事件流126輸出到事件接收器110,并且把第二輸出事件流128輸出到事件接收器112。在 某些實(shí)施例中,事件源、事件處理應(yīng)用和事件接收器彼此解耦,使得可以添加或除去這些部 件中任何部件,而不造成對(duì)其它部件的改變。
[0051] 在一種實(shí)施例中,EPS 102可以實(shí)現(xiàn)為包括帶共享服務(wù)的輕量級(jí)Java應(yīng)用容器, 諸如基于Equinox OSGi的容器,的Java服務(wù)器。在一些實(shí)施例中,EPS 102可以對(duì)處理事 件支持超高吞吐量和微秒級(jí)延遲,例如,通過使用JRockit Real Time。EPS 102還可以提 供開發(fā)平臺(tái)(例如,完全實(shí)時(shí)的端到端Java事件驅(qū)動(dòng)體系架構(gòu)(EDA)開發(fā)平臺(tái)),包括用于 開發(fā)事件處理應(yīng)用的工具(例如,Oracle CEP Visualizer和Oracle CEP IDE)。
[0052] 事件處理應(yīng)用配置為監(jiān)聽一個(gè)或多個(gè)輸入事件流,執(zhí)行用于從一個(gè)或多個(gè)輸入事 件流選擇一個(gè)或多個(gè)值得注意的事件的邏輯(例如,查詢),并且把選定的值得注意的事件 經(jīng)由一個(gè)或多個(gè)輸出事件流輸出到一個(gè)或多個(gè)事件源。圖1提供了用于一個(gè)這種事件處理 應(yīng)用120的鉆?。╠rilldown)。如圖1中所示,事件處理應(yīng)用120配置為監(jiān)聽輸入事件流 118、執(zhí)行包括用于從輸入事件流118選擇一個(gè)或多個(gè)值得注意的事件的邏輯的查詢130, 并且經(jīng)由輸出事件流128向事件接收器112輸出選定的值得注意的事件。事件源的例子包 括,但不限于,適配器(例如,JMS、HTTP和文件)、通道、處理器、表、高速緩存,等等。事件 接收器的例子包括,但不限于,適配器(例如,JMS、HTTP和文件)、通道、處理器、表、高速緩 存^等等。
[0053] 雖然圖1中的事件處理應(yīng)用120示為監(jiān)聽一個(gè)輸入流并且經(jīng)由一個(gè)輸出流輸出選 定的事件,但這不是要作為限制。在備選實(shí)施例中,事件處理應(yīng)用可以配置為監(jiān)聽從一個(gè)或 多個(gè)事件源接收的多個(gè)輸入流,從被監(jiān)視的流選擇事件,并且經(jīng)由一個(gè)或多個(gè)輸出事件流 向一個(gè)或多個(gè)事件接收器輸出選定的事件。相同的查詢可以與多于一個(gè)事件接收器并且與 不同類型的事件接收器關(guān)聯(lián)。
[0054] 由于其無界性,經(jīng)由事件流接收的數(shù)據(jù)量一般非常大。因此,為了查詢目的而存儲(chǔ) 或歸檔所有數(shù)據(jù)一般是不實(shí)際和不期望的。當(dāng)事件被EPS 102接收時(shí),事件流的處理需要 實(shí)時(shí)的事件處理,而無需存儲(chǔ)所有接收的事件數(shù)據(jù)。因此,當(dāng)事件被EPS 102接收時(shí),EPS 102提供使事件處理能夠被執(zhí)行的具體查詢機(jī)制,而無需存儲(chǔ)所有接收的事件。
[0055] 事件