專(zhuān)利名稱(chēng):用于在對(duì)流事件的查詢(xún)模式匹配期間進(jìn)行快速響應(yīng)的調(diào)度的制作方法
技術(shù)領(lǐng)域:
本說(shuō)明涉及對(duì)流事件(stream event)的查詢(xún)模式匹配(query pattern matching)。
背景技術(shù):
事件處理中的模式匹配通常指在到達(dá)事件的流中檢測(cè)預(yù)定模式的出現(xiàn)。這樣的事 件流可以存在于各種各樣的環(huán)境(setting)中,并且可能包含期望的或者未知的信息,這 些信息在沒(méi)有適合的事件流處理技術(shù)的幫助下很難被檢測(cè)到。這樣的事件流的示例存在于,例如,商業(yè)、工業(yè)、衛(wèi)生、政府、和軍事等領(lǐng)域,以及其 中源(sources)生成事件的許多其它研究領(lǐng)域(fields of endeavor)。作為金融領(lǐng)域的具 體示例,股票市場(chǎng)在交易日連續(xù)地生成當(dāng)前股價(jià)格以及關(guān)于各支股票的其它信息。在航空 工業(yè)中,預(yù)訂系統(tǒng)和飛行跟蹤系統(tǒng)生成關(guān)于機(jī)票購(gòu)買(mǎi)和飛行時(shí)刻表的事件。在電子商務(wù)領(lǐng) 域中,在線商鋪和與商鋪網(wǎng)站的瀏覽以及與之相關(guān)的購(gòu)買(mǎi)活動(dòng)有關(guān)的事件相關(guān)聯(lián)。已知存 在這樣的事件流的許多其它示例,其中一些在下面被更詳細(xì)地提到。利用這樣的事件流的一種方式是通過(guò)在事件流中檢測(cè)事件模式的存在來(lái)從中提 取信息。例如,使用剛剛給出的示例,第一模式可以用來(lái)在股票市場(chǎng)中檢測(cè)有關(guān)期望的股票 或股票組的某價(jià)格動(dòng)態(tài)或其它相關(guān)信息。第二模式可以應(yīng)用到航空環(huán)境,以便確定例如航 線預(yù)定的具體的增長(zhǎng)或下降。在第三個(gè)示例中,可以在在線商鋪的事件流中檢測(cè)到退貨商 品或顧客申訴的模式。因而在實(shí)踐中可以定義表達(dá)要在規(guī)定的事件流中檢測(cè)的期望模式的查詢(xún)模式。然 后,所定義的查詢(xún)模式與規(guī)定的事件流可以互相比較,以便在事件流中發(fā)現(xiàn)該查詢(xún)模式時(shí) 輸出檢測(cè)到該查詢(xún)模式。在許多環(huán)境中,可能出現(xiàn)這樣的情況大量的事件會(huì)包含在事件 流中,并且會(huì)相對(duì)較快地到達(dá)。同時(shí),可能會(huì)有相對(duì)大量的查詢(xún)模式被規(guī)定(specified)用 于與所討論的事件流進(jìn)行比較。例如,可能相對(duì)于大量的各支股票,反映價(jià)格更新和關(guān)于 股票市場(chǎng)的其它信息的事件流可能會(huì)以很緊湊的節(jié)奏到達(dá)。同時(shí),規(guī)定了股價(jià)動(dòng)態(tài)或其它 股票活動(dòng)的特定模式的查詢(xún)模式可以被規(guī)定用于一支或所有相關(guān)的股票。因此,需要評(píng)估 (evaluate)大量的事件和大量的查詢(xún)模式,結(jié)果就是在確定特定股票的相應(yīng)評(píng)估中存在延 遲。關(guān)于這一點(diǎn),在許多環(huán)境中,在事件流和特定查詢(xún)模式之間發(fā)生匹配的速度是重 要或關(guān)鍵的因素。例如,在剛剛給出的股票市場(chǎng)的示例中,股票交易者希望檢測(cè)某價(jià)格模 式,并可能對(duì)多支股票規(guī)定了多個(gè)這樣的模式。在這個(gè)示例中,股票交易者希望基于一個(gè)或 更多所規(guī)定的模式的識(shí)別來(lái)建立(base)股票買(mǎi)入或賣(mài)出。但是,取決于事件流中事件的到 達(dá)數(shù)量和/或到達(dá)速率,和/或要與事件流進(jìn)行匹配的查詢(xún)模式的數(shù)量、大小或復(fù)雜度,在 輸出特定事件和相應(yīng)查詢(xún)模式之間匹配的確定時(shí),會(huì)體驗(yàn)到明顯的延遲。例如,股票會(huì)達(dá)到 完成與預(yù)先定義的查詢(xún)模式的匹配的價(jià)格。但是,如果有大量其它的、先前事件在時(shí)間上先 于與該股價(jià)動(dòng)態(tài)相關(guān)聯(lián)的事件,和/或如果還有大量查詢(xún)模式要與任何這樣的在先事件進(jìn)行比較,則可能在已經(jīng)出現(xiàn)了一定量的延遲之后才檢測(cè)到和報(bào)告所述特定事件與其相關(guān)聯(lián) 的查詢(xún)模式之間的匹配。同時(shí),與查詢(xún)模式相關(guān)聯(lián)的買(mǎi)入或賣(mài)出時(shí)機(jī)可能被減緩或錯(cuò)失。 在其它環(huán)境或上述示例中以及在復(fù)雜事件流處理的其它已知應(yīng)用中也存在類(lèi)似的示例。因 此,如這些以及其它示例所示出的,在表征(characterize)匹配的有用性時(shí),與事件和查 詢(xún)模式的匹配相關(guān)聯(lián)的響應(yīng)時(shí)間是一個(gè)重要的度量(metric)。
發(fā)明內(nèi)容
根據(jù)一個(gè)一般方面,系統(tǒng)包括記錄在計(jì)算機(jī)可讀介質(zhì)上的指令。該系統(tǒng)包括查 詢(xún)模式處理器,被配置為確定要被與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式,并且被配置為 確定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例(active instance)的多個(gè) 運(yùn)行時(shí)模式,而且每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài);事件調(diào)度器,被配置為接收事件流中的事 件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);運(yùn)行時(shí)模式調(diào)度器,被配置為基于優(yōu)先級(jí)度 量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu)先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表征了在當(dāng)前事件集 合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài)的前進(jìn);以及模式匹配評(píng)估器,被配置為針對(duì)當(dāng)前 事件集合依次評(píng)估所述經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式。實(shí)施方式可以包括一個(gè)或更多以下特征。例如,查詢(xún)模式處理器可以包括狀態(tài)機(jī) 生成器,該狀態(tài)機(jī)生成器被配置為生成至少一個(gè)有限狀態(tài)機(jī)以代表所述至少一個(gè)查詢(xún)模 式,所述至少一個(gè)有限狀態(tài)機(jī)包括通過(guò)具有要被針對(duì)事件流中的事件進(jìn)行評(píng)估的謂詞條件 (predicate conditions)的邊(edges)連接的多個(gè)狀態(tài)。查詢(xún)模式處理器可以包括運(yùn)行時(shí) 模式生成器,該運(yùn)行時(shí)模式生成器配置為響應(yīng)于事件流中的相應(yīng)的觸發(fā)事件而生成多個(gè)運(yùn) 行時(shí)模式中的每個(gè)運(yùn)行時(shí)模式。事件調(diào)度器可以包括事件隊(duì)列,該事件隊(duì)列配置為存儲(chǔ)當(dāng)前事件集合。運(yùn)行時(shí)模式調(diào)度器可以包括模式列表管理器,該模式列表管理器被配置為維護(hù)可 用于進(jìn)行匹配的運(yùn)行時(shí)模式的待處理列表以及包括該待處理列表的子集的運(yùn)行列表,該運(yùn) 行列表包括用于從其提供給所述模式匹配評(píng)估器的經(jīng)排序的集合。所述運(yùn)行時(shí)模式調(diào)度器 可以包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置為基于事件流的特征來(lái)計(jì)算所述優(yōu)先級(jí)度 量。運(yùn)行時(shí)模式調(diào)度器可以包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置為基于每個(gè)運(yùn) 行時(shí)模式的當(dāng)前狀態(tài)來(lái)計(jì)算優(yōu)先級(jí)度量。所述運(yùn)行時(shí)模式可以被表達(dá)為有限狀態(tài)機(jī),該有 限狀態(tài)機(jī)包括通過(guò)具有要被針對(duì)事件流中的事件進(jìn)行評(píng)估的謂詞條件的邊連接的多個(gè)狀 態(tài),并且其中,所述運(yùn)行時(shí)模式調(diào)度器可以包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置為計(jì) 算用于每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí)度量(priority metric),該優(yōu)先級(jí)度量包括基于通過(guò)每 個(gè)狀態(tài)機(jī)的每個(gè)獨(dú)立路徑的長(zhǎng)度而確定的完成預(yù)期(expectation)以及每個(gè)路徑的完成 概率,包括考慮到每個(gè)路徑的各個(gè)謂詞條件的每個(gè)路徑的完成的條件概率(conditional probability)。所述運(yùn)行時(shí)模式可以被表達(dá)為有限狀態(tài)機(jī),該有限狀態(tài)機(jī)包括通過(guò)具有要被針 對(duì)事件流中的事件進(jìn)行評(píng)估的謂詞條件的邊連接的多個(gè)狀態(tài),并且其中,所述運(yùn)行時(shí)模式 調(diào)度器可以包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置為計(jì)算每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí) 度量,該優(yōu)先級(jí)度量包括基于通過(guò)每個(gè)狀態(tài)機(jī)的每個(gè)獨(dú)立路徑的長(zhǎng)度而確定的完成成本(cost of completion)。運(yùn)行時(shí)模式調(diào)度器可以包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置來(lái)計(jì)算基于 模式完成預(yù)期和完成成本的優(yōu)先級(jí)度量。優(yōu)先級(jí)管理器可以被配置為在設(shè)計(jì)時(shí)(design time)使用偽運(yùn)行時(shí)模式來(lái)估算和存儲(chǔ)運(yùn)行時(shí)模式的每個(gè)狀態(tài)的預(yù)期和成本,并且被配置 為在運(yùn)行時(shí)將當(dāng)前事件分布和運(yùn)行時(shí)模式的當(dāng)前狀態(tài)進(jìn)行比較,以檢索相應(yīng)的預(yù)期和成 本。運(yùn)行時(shí)模式可以被表達(dá)為有限狀態(tài)機(jī),該有限狀態(tài)機(jī)包括通過(guò)具有謂詞條件的邊 而連接的多個(gè)狀態(tài),并且其中,模式匹配評(píng)估器可以被配置為通過(guò)將當(dāng)前事件集合的事件 與經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式進(jìn)行比較以確定當(dāng)前事件集合中的每個(gè)事件是否滿(mǎn) 足其當(dāng)前謂詞條件,來(lái)評(píng)估每個(gè)運(yùn)行時(shí)模式。模式匹配評(píng)估器可以被配置為輸出經(jīng)排序的集合中匹配的和完成的所有運(yùn)行時(shí) 模式作為匹配的模式,并且可以進(jìn)一步被配置為將經(jīng)排序的集合中的任何剩余運(yùn)行時(shí)模式 返回運(yùn)行時(shí)模式調(diào)度器。運(yùn)行時(shí)模式調(diào)度器可以被配置為接收剩余的運(yùn)行時(shí)模式,用于與 任何新的可用的運(yùn)行時(shí)模式進(jìn)行組合,并且被配置為重新確定所述組合中的每個(gè)運(yùn)行時(shí)模 式的優(yōu)先級(jí)度量,以確定要被針對(duì)更新的事件集合進(jìn)行評(píng)估的更新的經(jīng)排序的集合。根據(jù)另一個(gè)一般方面,用于執(zhí)行存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的指令的計(jì)算機(jī)實(shí) 施的方法,可以包括確定要與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式;接收事件流中的事 件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);確定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè) 查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行時(shí)模式,而且每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài);基于優(yōu)先級(jí) 度量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu)先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表征了在與當(dāng)前事 件集合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài)的前進(jìn);以及針對(duì)當(dāng)前事件集合依次評(píng)估所述 經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式。實(shí)施可以包括一個(gè)或更多以下特征。例如,確定多個(gè)運(yùn)行時(shí)模式包括生成相應(yīng)的 多個(gè)有限狀態(tài)機(jī)以代表每個(gè)運(yùn)行時(shí)模式,每個(gè)有限狀態(tài)機(jī)包括通過(guò)具有要被針對(duì)事件流中 的事件進(jìn)行評(píng)估的謂詞條件的邊連接的多個(gè)狀態(tài)。所述評(píng)估可以包括輸出經(jīng)排序的集合中的匹配的和完成的全部運(yùn)行時(shí)模式作為 匹配的模式,并且返回經(jīng)排序的集合中的任何剩余運(yùn)行時(shí)模式,用于與任何新的可用的運(yùn) 行時(shí)模式進(jìn)行組合。該方法可以包括重新確定所述組合中的每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí)度 量,以確定要被針對(duì)更新的事件集合進(jìn)行評(píng)估的更新的經(jīng)排序的集合。根據(jù)另一個(gè)一般方面,計(jì)算機(jī)程序產(chǎn)品可以有形地體現(xiàn)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì) 上,并且可以包括指令,當(dāng)被執(zhí)行時(shí)所述指令被配置為確定要與事件流進(jìn)行匹配的至少一 個(gè)查詢(xún)模式;接收事件流中的事件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);確定代表 當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行時(shí)模式,而且每個(gè)運(yùn)行時(shí) 模式包括多個(gè)狀態(tài);基于優(yōu)先級(jí)度量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu)先級(jí)度量為每 個(gè)運(yùn)行時(shí)模式表征了在與當(dāng)前事件集合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài)的前進(jìn);以及 針對(duì)當(dāng)前事件集合依次評(píng)估所述經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式。實(shí)施可以包括一個(gè)或更多以下特征。例如,當(dāng)被執(zhí)行時(shí)所述指令可以進(jìn)一步被配 置為輸出所述經(jīng)排序的集合中匹配的和完成的所有運(yùn)行時(shí)模式作為匹配的模式;返回所 述經(jīng)排序的集合中的任何剩余運(yùn)行時(shí)模式,用于與任何新的可用的運(yùn)行時(shí)模式進(jìn)行組合;以及重新確定所述組合中的每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí)度量,以確定要被針對(duì)更新的事件集 合進(jìn)行評(píng)估的更新的經(jīng)排序的集合。一個(gè)或更多實(shí)施方式的細(xì)節(jié)在附圖和以下描述中進(jìn)行了闡述。其它特征將從所述 描述和附圖,以及從權(quán)利要求中清楚地看出。
圖1是用于在對(duì)流事件進(jìn)行查詢(xún)模式匹配期間為快速響應(yīng)而進(jìn)行調(diào)度的系統(tǒng)的 框圖。圖2A是使用圖1的系統(tǒng)評(píng)估的第一運(yùn)行時(shí)(runtime)模式的圖示。圖2B是使用圖1的系統(tǒng)評(píng)估的第二運(yùn)行時(shí)模式的圖示。圖2C是使用圖1的系統(tǒng)評(píng)估的第三運(yùn)行時(shí)模式的圖示。圖2D是使用圖1的系統(tǒng)評(píng)估的第四運(yùn)行時(shí)模式的圖示。圖2E是由圖1的系統(tǒng)接收、并相對(duì)于圖2A-2D的運(yùn)行時(shí)模式進(jìn)行評(píng)估的流事件的 時(shí)間線。圖3是示出圖1的系統(tǒng)的示例操作的流程圖。圖4是示出圖1的系統(tǒng)的操作的更詳細(xì)的示例的第二流程圖。圖5是在圖1的系統(tǒng)中使用的一般查詢(xún)模式的示例,表示為狀態(tài)機(jī)。圖6是查詢(xún)模式的另一個(gè)具體示例和相關(guān)聯(lián)的狀態(tài)機(jī)。
具體實(shí)施例方式圖1是用于在事件流上進(jìn)行查詢(xún)模式的匹配期間為快速響應(yīng)而進(jìn)行調(diào)度的系統(tǒng) 100的框圖。在圖1的示例中,事件102的流被接收以與多個(gè)查詢(xún)模式104、106進(jìn)行匹配。 在操作期間,事件102與查詢(xún)模式104、106中的一個(gè)或兩者的比較可以產(chǎn)生一個(gè)或更多匹 配的模式108,匹配的模式108由系統(tǒng)100輸出。如以下所詳細(xì)描述的,系統(tǒng)100被設(shè)計(jì)為 最小化針對(duì)事件組和相關(guān)聯(lián)的(匹配的)查詢(xún)模式的平均響應(yīng)時(shí)間,其中所述響應(yīng)時(shí)間是 指在事件102中的特定事件的到達(dá)與識(shí)別出在這樣的事件和查詢(xún)模式104、106之一的實(shí)例 (instance)之間的匹配之間的時(shí)間差。以這種方式,可以盡快向系統(tǒng)100的用戶(hù)提供關(guān)于 事件102中期望的或規(guī)定的模式的出現(xiàn)的信息,從而用戶(hù)可以基于此來(lái)采取適當(dāng)?shù)膭?dòng)作。在操作期間,系統(tǒng)100包括查詢(xún)模式處理器(handler) 110,該查詢(xún)模式處理器 110可以被配置為接收查詢(xún)模式104、106,并生成查詢(xún)模式104、106的活動(dòng)實(shí)例(active instance)用于針對(duì)事件102進(jìn)行評(píng)估。在這里提供的描述中,這樣的活動(dòng)實(shí)例被稱(chēng)為運(yùn)行 時(shí)模式,并且在圖1的簡(jiǎn)化示例中,查詢(xún)模式104、106的每一個(gè)具有兩個(gè)運(yùn)行時(shí)模式。具體 來(lái)講,如所示,查詢(xún)模式處理器110可以被配置為接收查詢(xún)模式104并輸出兩個(gè)相應(yīng)的運(yùn)行 時(shí)模式l(Ma、104b。類(lèi)似的,查詢(xún)模式處理器110被配置為接收查詢(xún)模式106并輸出相應(yīng)的 運(yùn)行時(shí)模式106a、106b。以下提供在這點(diǎn)上關(guān)于查詢(xún)模式處理器110的操作的其它細(xì)節(jié),但是,通常,可以 理解為運(yùn)行時(shí)模式104a、104b、106a、106b代表處于正被相對(duì)于事件流102進(jìn)行評(píng)估的處 理中的底層(underlying)查詢(xún)模式104、106的活動(dòng)實(shí)例。不過(guò),通??梢岳斫鉃椴樵?xún) 模式104、106代表期望的查詢(xún)模式的模板或抽象表示(abstract representation)或表
8征(characterization),而相應(yīng)的運(yùn)行時(shí)模式104a、104b、106a、106b代表正被相對(duì)于事件 102的流活躍地評(píng)估(actively evaluated)的模板的實(shí)際應(yīng)用或出現(xiàn)。模式調(diào)度器112可以被配置為接收事件102和任何可用的運(yùn)行時(shí)模式,包括示例 運(yùn)行時(shí)模式104a、104b、106a、106b,并且可以被配置為將事件和運(yùn)行時(shí)模式中的一些或全 部呈現(xiàn)(present)給模式匹配評(píng)估器114。于是,模式匹配評(píng)估器114可以被配置為考慮 在事件和運(yùn)行時(shí)模式之間的潛在的匹配,從而,例如,如以上所提到的,模式匹配評(píng)估器114 可以最終輸出匹配的模式108,供系統(tǒng)100的用戶(hù)使用。如以下詳細(xì)描述的,模式調(diào)度器112可以被配置為以減少獲得匹配模式108的平 均響應(yīng)時(shí)間的方式來(lái)調(diào)度一些或全部可用事件和運(yùn)行時(shí)模式,用于呈現(xiàn)給模式匹配評(píng)估器 114。也就是,模式調(diào)度器112被配置為以設(shè)計(jì)為最優(yōu)化系統(tǒng)100在提供匹配的模式108時(shí) 的平均響應(yīng)時(shí)間的次序來(lái)將事件和運(yùn)行時(shí)模式提供給模式匹配評(píng)估器114。在圖1的示例中,查詢(xún)模式處理器110可以包括狀態(tài)機(jī)生成器116,該狀態(tài)機(jī)生成 器116被配置為以狀態(tài)機(jī)的形式來(lái)表現(xiàn)查詢(xún)模式104、106中的每一個(gè)。以下針對(duì)圖2A-2D 以及更具體地針對(duì)圖5來(lái)描述這樣的狀態(tài)機(jī)的示例。但是,通常這樣的狀態(tài)機(jī)一般包括所 討論的查詢(xún)模式的多個(gè)狀態(tài)。所述狀態(tài)通過(guò)與謂詞條件(predicate condition)相關(guān)聯(lián)的 邊(edge)連接,所述謂詞條件被定義以使得在確定所接收的事件滿(mǎn)足與連接第一狀態(tài)和 第二狀態(tài)的邊相關(guān)聯(lián)的居間(intervening)謂詞條件時(shí),所討論的查詢(xún)模式的狀態(tài)機(jī)從第 一狀態(tài)前進(jìn)到第二狀態(tài)。因此,與連續(xù)狀態(tài)之間的謂詞條件相匹配的后續(xù)(subsequent)事 件的到達(dá)可以被理解為使?fàn)顟B(tài)機(jī)在狀態(tài)之間前進(jìn),并最終從初始狀態(tài)前進(jìn)到最終狀態(tài)。當(dāng) 達(dá)到最終狀態(tài)時(shí),查詢(xún)模式(即,相應(yīng)的活動(dòng)運(yùn)行時(shí)模式)可以被稱(chēng)為被完成或被匹配。查詢(xún)模式處理器110還可以包括運(yùn)行時(shí)模式生成器118,對(duì)于所討論的每個(gè)查詢(xún) 模式,該運(yùn)行時(shí)模式生成器118訪問(wèn)狀態(tài)機(jī)生成器116的相關(guān)狀態(tài)機(jī),以便由此生成相應(yīng)的 運(yùn)行時(shí)模式。例如,如以下所詳細(xì)描述的,查詢(xún)模式104可存在于系統(tǒng)100中,并被查詢(xún)模 式處理器110接收,用于由狀態(tài)機(jī)生成器116生成相關(guān)聯(lián)的狀態(tài)機(jī)。當(dāng)事件102中的第一 事件或者某個(gè)其它觸發(fā)(trigger)事件或條件到達(dá)時(shí),運(yùn)行時(shí)模式生成器118可以生成運(yùn) 行時(shí)模式10如。類(lèi)似地,當(dāng)接收到稍后或不同的事件時(shí),運(yùn)行時(shí)模式生成器118可以再次 使用狀態(tài)機(jī)生成器116的相關(guān)的狀態(tài)機(jī),來(lái)生成查詢(xún)模式104的第二活動(dòng)實(shí)例,即,運(yùn)行時(shí) 模式104b。類(lèi)似地,例如,運(yùn)行時(shí)模式生成器118可能響應(yīng)于所接收的相應(yīng)事件以及觸發(fā) 運(yùn)行時(shí)模式106a、106b的實(shí)例化的相應(yīng)事件,而會(huì)使用查詢(xún)模式106的狀態(tài)機(jī)表示(state machine representation of the query patternl06),從查詢(xún)模式 106 生成相應(yīng)的運(yùn)行時(shí) 模式 106a、106b。模式調(diào)度器112可以包括事件調(diào)度器120,該事件調(diào)度器120 —般負(fù)責(zé)在模式調(diào) 度器112的上下文中管理所接收事件102的次序和使用。例如,事件調(diào)度器120可以被配 置為將事件102中一個(gè)或更多事件與由運(yùn)行時(shí)模式調(diào)度器IM提供給模式匹配評(píng)估器114 的相應(yīng)的運(yùn)行時(shí)模式一起提供給模式匹配評(píng)估器114。實(shí)踐中,事件102可能以相對(duì)較低的 速率接收,因此事件調(diào)度器120可以在每個(gè)事件到達(dá)時(shí)將事件提供給模式匹配評(píng)估器114。 然而,在許多實(shí)施例中,可能出現(xiàn)這樣的情況事件102的到達(dá)速率足夠快,以至于模式匹 配評(píng)估器114很難或不可能在事件102中的后續(xù)事件到達(dá)之前評(píng)估來(lái)自運(yùn)行時(shí)模式調(diào)度器 124的可用運(yùn)行時(shí)模式中期望的運(yùn)行時(shí)模式。因此,如所示,事件調(diào)度器120可能包括事件隊(duì)列122,該事件隊(duì)列122負(fù)責(zé)緩沖或存儲(chǔ)事件102中的已經(jīng)被接收到但是還沒(méi)有準(zhǔn)備好或 可用于由模式匹配評(píng)估器114進(jìn)行評(píng)估的事件。運(yùn)行時(shí)模式調(diào)度器124,與事件調(diào)度器120類(lèi)似,負(fù)責(zé)將運(yùn)行時(shí)模式l(Ma、104b、 106a、106b中期望的運(yùn)行時(shí)模式以這里所描述的被設(shè)計(jì)來(lái)最小化系統(tǒng)100在提供匹配的模 式108時(shí)的平均響應(yīng)時(shí)間的次序和方式(manner)(與事件調(diào)度器120提供的事件一起)提 供給模式匹配評(píng)估器114。這樣做時(shí),運(yùn)行時(shí)模式調(diào)度器IM可以包括模式列表管理器126, 該模式列表管理器126維護(hù)由可用運(yùn)行時(shí)模式的不同集合或子集填充(populated)的多個(gè) 列表。如所示,一個(gè)這樣的列表或隊(duì)列可以包括待處理列表(pending list) 130,該待處 理列表130包括當(dāng)前可以提供給模式匹配評(píng)估器114的全部可用運(yùn)行時(shí)模式l(Ma、104b、 106a、106b。但是,在系統(tǒng)100中,在給定時(shí)間并不是列表130中的所有這樣的可用運(yùn)行時(shí) 模式都可以呈現(xiàn)給模式匹配評(píng)估器114。而是,優(yōu)先級(jí)管理器1 可以被實(shí)施以將所述待處 理列表130的子集排序(rank)、分類(lèi)(sort)或按優(yōu)先次序排列。然后,這樣的經(jīng)排序的子 集可以被包括在運(yùn)行列表132內(nèi),該運(yùn)行列表132代表與從事件調(diào)度器120接收的事件一 起、被主動(dòng)(actively)提供給模式匹配評(píng)估器114用于對(duì)其進(jìn)行評(píng)估的運(yùn)行時(shí)模式。如以下詳細(xì)描述的,優(yōu)先級(jí)管理器1 可以被配置為按優(yōu)先次序排列待處理列表 130的某些運(yùn)行時(shí)模式,所述某些運(yùn)行時(shí)模式被認(rèn)為最可能實(shí)質(zhì)上得益于或受益于(例如, 狀態(tài)的前進(jìn))被與事件調(diào)度器120提供的事件的當(dāng)前集合進(jìn)行匹配。因此,模式匹配評(píng)估 器114更加可能使用事件隊(duì)列122中的當(dāng)前事件的集合使運(yùn)行時(shí)模式前進(jìn)或完成,從而改 善匹配模式108的平均響應(yīng)時(shí)間。系統(tǒng)100可以提供各種模式(mode)的操作,所以可以選擇在給定環(huán)境中被認(rèn)為最 具優(yōu)勢(shì)的特定操作模式,或者響應(yīng)于特定請(qǐng)求或偏好或系統(tǒng)100的用戶(hù)來(lái)選擇特定操作模 式。例如,在基于事件的模式中,事件調(diào)度器120可以接收事件102,并且可以將每個(gè)事件依 次提供給模式匹配評(píng)估器114。在這種模式中,運(yùn)行時(shí)模式調(diào)度器IM可以簡(jiǎn)單地將每個(gè)可 用的運(yùn)行時(shí)模式依次提供給模式匹配評(píng)估器114,以便與來(lái)自事件調(diào)度器120的當(dāng)前事件 進(jìn)行匹配。換句話說(shuō),單一事件可以與全部可用的運(yùn)行時(shí)模式進(jìn)行比較,由此任何因而發(fā)生 的這樣的運(yùn)行時(shí)模式的前進(jìn)或完成由模式匹配評(píng)估器114確定,從而這樣考慮的事件可以 隨后被丟棄。這樣的基于事件的處理可以具有特別的優(yōu)勢(shì),例如,當(dāng)事件102的到達(dá)速率相對(duì) 較低時(shí)。也就是,如果事件在事件調(diào)度器120被接收并被轉(zhuǎn)送到模式匹配評(píng)估器114,并且 在事件102中的后續(xù)事件被接收之前存在相對(duì)較長(zhǎng)的延遲,則系統(tǒng)100可以利用這中間的 時(shí)間(intervening time)、針對(duì)可用運(yùn)行時(shí)模式104a、104b、106a、106b來(lái)評(píng)估所討論的事 件。類(lèi)似地,這樣的基于事件的調(diào)度可以適于可用運(yùn)行時(shí)模式在數(shù)量上相對(duì)較小和/或簡(jiǎn) 單易于計(jì)算(straightforward to calculate)的情況,從而再一次,相對(duì)于后續(xù)事件的到 達(dá)速率來(lái)說(shuō)所接收的事件可以被較快地處理。相反地,在其它環(huán)境中,運(yùn)行時(shí)模式調(diào)度器IM可以被配置為選擇每個(gè)運(yùn)行時(shí)模 式,用于與存儲(chǔ)在事件隊(duì)列122中的事件的集合進(jìn)行比較。在這樣的基于運(yùn)行(rim-based) 的調(diào)度中,可以將每個(gè)運(yùn)行時(shí)模式與事件隊(duì)列122中的事件的集合進(jìn)行比較,由此模式匹 配評(píng)估器114可以確定是否出現(xiàn)運(yùn)行時(shí)模式的前進(jìn)或完成(例如,相應(yīng)的狀態(tài)機(jī)的一個(gè)或更多狀態(tài)由所討論的事件推進(jìn))。因此,給定運(yùn)行時(shí)模式可以前進(jìn)或完成,隨之模式匹配評(píng) 估器114可以將下一個(gè)運(yùn)行時(shí)模式與事件隊(duì)列122中的事件的同一集合進(jìn)行匹配。與上述 基于事件的調(diào)度相反,這樣的基于運(yùn)行的調(diào)度在事件102的到達(dá)速率相對(duì)較快時(shí)、或者在 所討論的運(yùn)行時(shí)模式的處理相對(duì)復(fù)雜或漫長(zhǎng)時(shí)是最有益的。因此,通常,上述基于事件的調(diào)度可以被認(rèn)為代表在模式匹配評(píng)估器114中所考 慮的單一事件和多個(gè)運(yùn)行時(shí)模式之間的“一對(duì)多”關(guān)系。相反地,上述基于運(yùn)行的調(diào)度可以 被認(rèn)為代表在給定時(shí)間考慮的單一運(yùn)行時(shí)模式相對(duì)于在事件隊(duì)列122中的多個(gè)事件之間 的“一對(duì)多”關(guān)系。如上所述,系統(tǒng)100的不同操作模式可以最好地適應(yīng)系統(tǒng)100的給定的 情況或環(huán)境。在其它實(shí)施例中,如這里所描述的,系統(tǒng)100可以以其中事件和運(yùn)行時(shí)模式被 認(rèn)為是相互的“多對(duì)多”關(guān)系的混合模式進(jìn)行操作,從而如上所述,可以最小化與相應(yīng)的多 個(gè)事件和運(yùn)行時(shí)模式的匹配的模式108相關(guān)聯(lián)的平均響應(yīng)時(shí)間。在圖1中,示出了簡(jiǎn)化版的系統(tǒng)100,其中只示出了兩個(gè)查詢(xún)模式104、106,每個(gè)查 詢(xún)模式只具有兩個(gè)運(yùn)行時(shí)模式(分別為l(Ma/104b、106a/106b)。系統(tǒng)100被示出為使用單 一計(jì)算裝置134來(lái)執(zhí)行,這可以理解為包括任何必須的或期望的計(jì)算機(jī)資源。例如,計(jì)算裝 置134可以包括一個(gè)或更多處理器,它們可以被分配以執(zhí)行系統(tǒng)100的操作(可能為并行 地執(zhí)行),從而加速系統(tǒng)100在提供匹配模式108時(shí)的整體操作。其它適當(dāng)?shù)挠布梢员话?括,諸如,例如,用于實(shí)施事件隊(duì)列122、待處理列表130、和運(yùn)行列表132的適當(dāng)存儲(chǔ)器,這 是很顯然的。而且,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以被用于存儲(chǔ)用于使用如上所述計(jì)算裝置134 的一個(gè)或更多處理器來(lái)執(zhí)行系統(tǒng)100的指令。在實(shí)踐中,當(dāng)然,系統(tǒng)100可以使用數(shù)百、數(shù)千、數(shù)百萬(wàn)、或者更多的查詢(xún)模式,以 及(潛在的)相當(dāng)數(shù)量的事件102來(lái)實(shí)施。系統(tǒng)100可以使用多個(gè)計(jì)算裝置來(lái)實(shí)施,這些 計(jì)算裝置可以相互連接或通過(guò)諸如公共互聯(lián)網(wǎng)或公司內(nèi)聯(lián)網(wǎng)的計(jì)算機(jī)網(wǎng)絡(luò)相互通信。系統(tǒng) 100的其它配置和變化對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)都是清楚的。圖2A-2E提供了圖1的簡(jiǎn)化版系統(tǒng)100的更詳細(xì)的示例,用于解釋系統(tǒng)100的示 例操作。具體來(lái)講,如所示,圖2A和2B分別對(duì)應(yīng)運(yùn)行時(shí)模式10 和104b,而圖2C和2D分 別對(duì)應(yīng)運(yùn)行時(shí)模式106a和106b。而圖2E示出了被相對(duì)于圖2A-2D的運(yùn)行時(shí)模式進(jìn)行評(píng)估 的事件的時(shí)間線。在圖2A-2E的示例中,考慮一種特定環(huán)境,其中查詢(xún)模式104、106代表要相對(duì)于當(dāng) 前在資產(chǎn)市場(chǎng)中進(jìn)行交易的一支或更多股票或者其它資產(chǎn)被檢測(cè)的模式。再次強(qiáng)調(diào),所提 供的示例是為了解釋目的而簡(jiǎn)化的示例,并且不是為了表示系統(tǒng)100的完整或詳盡的使用 或?qū)嵤?。在圖2A-2E的簡(jiǎn)化示例中,假設(shè)事件102對(duì)應(yīng)特定股票的股價(jià)和股票交易量。在該 示例中,查詢(xún)模式104可以被設(shè)計(jì)為檢測(cè)價(jià)格模式,其中所討論的股票的價(jià)格在給定時(shí)間 窗口中至少三次增長(zhǎng)了一點(diǎn)(one point)或更多點(diǎn)。同時(shí),查詢(xún)模式106可以代表價(jià)格和交 易量(volume)模式,其中股價(jià)增長(zhǎng)至少一點(diǎn)之后跟隨著交易量增長(zhǎng)至少1000股(shares), 或者股價(jià)增長(zhǎng)至少一點(diǎn)與交易量增長(zhǎng)至少1000股相關(guān)聯(lián)。因此,查詢(xún)模式104可以使用已知技術(shù)和語(yǔ)法(以下提供的示例)來(lái)表達(dá),以捕獲 上述價(jià)格模式。然后狀態(tài)機(jī)生成器116可以生成相應(yīng)的狀態(tài)機(jī),其實(shí)例示出在圖2A中,其中 狀態(tài)2(^a、204a、206a和208a對(duì)應(yīng)期望被檢測(cè)的標(biāo)的股票(underlying stock)的價(jià)格動(dòng)態(tài),以及生成相應(yīng)的事件ei、e2、e3觸發(fā)謂詞條件210a、2Ua、214a,它們使運(yùn)行時(shí)模式10 的狀態(tài)機(jī)前進(jìn)通過(guò)各種狀態(tài)2(^a-208a。更詳細(xì)的講,從上述討論中可以理解,狀態(tài)機(jī)生成器116可以生成表達(dá)狀態(tài)機(jī)形 式的普通版本的查詢(xún)模式104,由此運(yùn)行時(shí)模式生成器118可以生成運(yùn)行時(shí)模式104a, 作為普通或底層(underlying)狀態(tài)機(jī)/查詢(xún)模式的實(shí)例化的(instantiated)或活動(dòng) 的實(shí)例。如上所述,運(yùn)行時(shí)模式生成器118可以響應(yīng)于接收到事件102中的在實(shí)例化 (instantiating)圖2A的活動(dòng)狀態(tài)機(jī)時(shí)定義或識(shí)別的觸發(fā)事件而執(zhí)行這樣的生成。關(guān)于符 號(hào)問(wèn)題,圖2A示出了查詢(xún)模式104被表示為Q1,具有活動(dòng)的或具體化的(substantiated) 運(yùn)行時(shí)模式(! 1),而狀態(tài)20加、204&、2063、2083被分別示出為SpSyS3J4tj通過(guò)相對(duì)于圖2E中所示的事件的示例時(shí)間線來(lái)考慮圖2A的示例,可以對(duì)狀態(tài)機(jī) 有一個(gè)概念性的了解。例如,如果如圖2E所示狀態(tài)20 與股價(jià)100相關(guān)聯(lián),則在其處股價(jià) 前進(jìn)到101的事件el可以被看作滿(mǎn)足股價(jià)增長(zhǎng)1點(diǎn)或更多的謂詞條件210a,因此運(yùn)行時(shí)模 式104前進(jìn)到下一個(gè)狀態(tài)20如。隨后,圖2E的時(shí)間線示出了隨后事件,這些事件示出了股 價(jià)停留在101的間隔(interval)或中間(intermediate)事件ei;因此狀態(tài)20 保持在運(yùn) 行時(shí)模式10 中。隨后,事件%示出了股價(jià)增長(zhǎng)到102,從而滿(mǎn)足了股價(jià)增長(zhǎng)一點(diǎn)或更多點(diǎn) 的謂詞條件212a,因此運(yùn)行時(shí)模式10 前進(jìn)到狀態(tài)206a。再次,一個(gè)或更多的中間事件& 可能出現(xiàn),在ei處股價(jià)停留在當(dāng)前價(jià)格102,直到事件%出現(xiàn)為止,在%處股價(jià)前進(jìn)到103, 從而滿(mǎn)足了謂詞條件21 并使運(yùn)行時(shí)模式10 的狀態(tài)機(jī)前進(jìn)到最終狀態(tài)208a。此時(shí),匹 配模式108的匹配模式可以被輸出,表明在規(guī)定的時(shí)間窗口中出現(xiàn)了價(jià)格三次或更多次增 長(zhǎng)一點(diǎn)或更多點(diǎn)的規(guī)定股價(jià)模式。除了圖2B的示例可以在比圖2A的示例稍后的時(shí)間被實(shí)例化之外,類(lèi)似的評(píng)論也 可以應(yīng)用到圖2B的示例。也就是,應(yīng)當(dāng)理解每個(gè)新的股價(jià)代表規(guī)定的價(jià)格模式將來(lái)出現(xiàn)的 機(jī)會(huì)或可能性,其中這樣的可能性最終可能或可能不實(shí)現(xiàn)。也就是,在實(shí)例化特定運(yùn)行時(shí)模 式時(shí),不可能得知期望的股價(jià)模式的匹配的潛在可能是否會(huì)被相對(duì)于相應(yīng)事件的所討論的 運(yùn)行時(shí)模式的特定實(shí)例滿(mǎn)足。例如,對(duì)于特定運(yùn)行時(shí)模式,可能會(huì)出現(xiàn)這樣的情況觀察到連續(xù)兩次增長(zhǎng)一點(diǎn)或 更多點(diǎn),但是該股價(jià)在期望觀察該股價(jià)模式的規(guī)定時(shí)間窗口的剩余時(shí)間期間卻保持不變。 作為比較,隨后的事件(即,接收到的股價(jià))也可以代表期望的價(jià)格模式的可能的將來(lái)匹 配,因此如果這樣的事件在第一運(yùn)行時(shí)模式的第一事件之后出現(xiàn),則還可能出現(xiàn)這樣的情 況第二事件會(huì)在其自己的相關(guān)(稍后)時(shí)間窗口中滿(mǎn)足期望的股價(jià)模式。換句話說(shuō),對(duì)于同一底層查詢(xún)模式104的兩個(gè)活動(dòng)實(shí)例l(Ma、104b,每個(gè)具有用于 完成的相同的規(guī)定時(shí)間窗口,有可能后開(kāi)始的運(yùn)行時(shí)模式具有完成匹配的機(jī)會(huì),而先開(kāi)始 的運(yùn)行時(shí)模式則沒(méi)有這樣的機(jī)會(huì)。因此,通常可以觀察到對(duì)于每個(gè)到達(dá)事件或事件的類(lèi)型 可能需要實(shí)例化單獨(dú)的實(shí)例或運(yùn)行時(shí)模式,以便確保捕獲期望的模式。在圖2B的示例中,運(yùn)行時(shí)模式104b與圖2A的運(yùn)行時(shí)模式10 基本相同地前進(jìn)。 但是,如剛剛描述的,運(yùn)行時(shí)模式104b以運(yùn)行時(shí)模式10 的發(fā)起(initiating)事件之后 的事件而實(shí)例化。例如,這樣的運(yùn)行時(shí)模式104b的發(fā)起事件可以是事件ei或包括事件
或者居間(intervening)事件ei之一。在任何情況下,在圖2B的示例中,狀態(tài)202b被示出 為通過(guò)與規(guī)定了從先前股價(jià)101增長(zhǎng)一點(diǎn)或更多點(diǎn)的謂詞條件210b相關(guān)聯(lián)的事件%使其前進(jìn),從而使運(yùn)行時(shí)模式104b前進(jìn)到狀態(tài)204b。類(lèi)似地,事件%和股價(jià)103滿(mǎn)足謂詞條 件212b,并使運(yùn)行時(shí)模式前進(jìn)到狀態(tài)206b。具有股價(jià)104的事件e4滿(mǎn)足相關(guān)聯(lián)的謂詞條 件214b,并使運(yùn)行時(shí)模式104b前進(jìn)到運(yùn)行時(shí)模式104b的最終狀態(tài)(并因此匹配模式108 的匹配)。圖2C和2D分別示出了運(yùn)行時(shí)模式106a和106b的示例實(shí)現(xiàn)方式。如上所述,并 且從圖2A和2B的描述中可以理解,圖2C的示例示出了這樣一種情形,其中狀態(tài)216a通過(guò) 事件ei和規(guī)定股價(jià)前進(jìn)一點(diǎn)或更多點(diǎn)的謂詞條件22 而前進(jìn),從而運(yùn)行時(shí)模式106a到達(dá) 狀態(tài)218a。隨后,事件 可以滿(mǎn)足規(guī)定交易量增加至少1000股的謂詞條件22 ,從而運(yùn) 行時(shí)模式106a前進(jìn)到最終狀態(tài)220a。類(lèi)似地,在圖2D中,基于稍后接收的事件,運(yùn)行時(shí)模式106b在比運(yùn)行時(shí)模式106a 稍后的時(shí)間而實(shí)例化,從而狀態(tài)216b通過(guò)事件%和股價(jià)增長(zhǎng)一點(diǎn)或更多點(diǎn)的謂詞條件 222b而前進(jìn),從而運(yùn)行時(shí)模式106b到達(dá)狀態(tài)218b。類(lèi)似地,事件%滿(mǎn)足規(guī)定交易量增長(zhǎng) 至少1000股的謂詞條件224b,因而運(yùn)行時(shí)模式106b前進(jìn)到最終狀態(tài)220b。可看觀察到,雖然運(yùn)行時(shí)模式106b在比運(yùn)行時(shí)模式106a稍后的時(shí)間被實(shí)例化和 開(kāi)始執(zhí)行,但是這兩個(gè)運(yùn)行時(shí)模式都到達(dá)與事件%相關(guān)聯(lián)的最終狀態(tài)。更一般地講,從所描 述的圖2A-2D的示例和圖2E的時(shí)間線中可以觀察到,多個(gè)查詢(xún)模式104、106的每一個(gè)可以 與多個(gè)實(shí)例化的活動(dòng)實(shí)例或運(yùn)行時(shí)模式相關(guān)聯(lián)。這樣的運(yùn)行時(shí)模式可以在不同時(shí)間開(kāi)始, 例如,重疊或并行時(shí)間,并且可以在相同或相互不同的時(shí)間經(jīng)歷完成或匹配。在其它示例中,在圖2A-2D的示例中沒(méi)有具體示出,活動(dòng)運(yùn)行時(shí)模式可以被停止 或銷(xiāo)毀。例如,在給定情形中匹配變得不可能,如當(dāng)超過(guò)了規(guī)定特定運(yùn)行時(shí)模式的最大持續(xù) 時(shí)間的時(shí)間窗口時(shí)。而且,在給定時(shí)間點(diǎn)可以觀察到,每個(gè)特定的運(yùn)行時(shí)模式距離前進(jìn)到或到達(dá)其最 終狀態(tài)可能非常近或非常遠(yuǎn)。例如,在圖2A中,運(yùn)行時(shí)模式10 可能當(dāng)前位于初始所示的 狀態(tài)20加。在該狀態(tài)中,可以觀察到運(yùn)行時(shí)模式10 在到達(dá)最終狀態(tài)208a之前必須經(jīng)歷 至少三個(gè)匹配事件。相反,同一底層查詢(xún)模式的另一個(gè)運(yùn)行時(shí)模式可能已經(jīng)處于狀態(tài)&,因 此可以只需要再一個(gè)事件就可以到達(dá)完成或最終狀態(tài)。如果運(yùn)行時(shí)模式10 和狀態(tài)20 已經(jīng)與用于確定相關(guān)價(jià)格模式的最大時(shí)間窗口很近了,則運(yùn)行時(shí)模式10 完全不可能會(huì) 在該時(shí)間窗口期滿(mǎn)之前完成。而且,底層事件流(underlying event stream) 102的表征可以有助于增加或減少 給定運(yùn)行時(shí)模式前進(jìn)或完成的可能性(likelihood)。例如,在圖2A的示例中,標(biāo)的股票可 能在一段時(shí)間內(nèi)經(jīng)歷了連續(xù)的價(jià)格下跌,這可能被計(jì)算或確定為降低價(jià)格連續(xù)三次增長(zhǎng)一 點(diǎn)或更多點(diǎn)的期望的股價(jià)模式將來(lái)的可能性。因此,通常來(lái)講,可以理解,對(duì)于每個(gè)活動(dòng)的或已有運(yùn)行時(shí)模式,存在一個(gè)或更多 接收的事件將前進(jìn)或完成所討論的模式的可能性預(yù)期。這樣的預(yù)期或可能性可以取決于, 例如,底層查詢(xún)模式(underlying query pattern)或所討論的運(yùn)行時(shí)模式的當(dāng)前狀態(tài)的表 征,或者取決于,例如,事件流102的過(guò)去的或預(yù)期的事件的底層表征。而且,每個(gè)運(yùn)行時(shí)模 式可以與使該運(yùn)行時(shí)模式前進(jìn)、或者與完成該運(yùn)行時(shí)模式所需的一定成本(cost)相關(guān)聯(lián)。 例如,如上所述,在初始狀態(tài)中的運(yùn)行時(shí)模式與緊鄰最終狀態(tài)的運(yùn)行時(shí)模式相比,會(huì)與較高 的完成成本相關(guān)聯(lián)。前進(jìn)或完成任何給定運(yùn)行時(shí)模式的預(yù)期和/或成本可以進(jìn)一步取決于所討論的運(yùn)行時(shí)模式的謂詞條件的本質(zhì)或類(lèi)型,或者一般取決于系統(tǒng)100的其它表征。以下提供了運(yùn)行時(shí)模式如何被表征的具體細(xì)節(jié)和其它示例。然而,通??梢岳斫猓?這樣的運(yùn)行時(shí)模式的表征可以用來(lái)將運(yùn)行時(shí)模式相互排序或按優(yōu)先次序排列。例如,如上 所述,運(yùn)行時(shí)模式調(diào)度器124的優(yōu)先級(jí)管理器1 可以執(zhí)行關(guān)于已有運(yùn)行時(shí)模式的排序算 法,從而使得最可能以顯著方式前進(jìn)或完成匹配的運(yùn)行時(shí)模式同時(shí)也是最可能被提供給模 式匹配評(píng)估器114,用于針對(duì)由事件調(diào)度器120提供的當(dāng)前事件進(jìn)行評(píng)估的運(yùn)行時(shí)模式。通過(guò)以這種方式對(duì)可用(例如,待處理)運(yùn)行時(shí)模式進(jìn)行排序或者選擇其子集或 經(jīng)排序的集合,模式調(diào)度器112可以被配置為將事件調(diào)度器120的事件集合連同來(lái)自運(yùn)行 時(shí)模式調(diào)度器124的這樣經(jīng)排序的運(yùn)行時(shí)模式的集合一起提供給模式匹配評(píng)估器114。因 此,如這里所述,系統(tǒng)100可以被配置為以最小化的并且因此也是最可能滿(mǎn)足系統(tǒng)100的用 戶(hù)的需求的平均響應(yīng)時(shí)間輸出匹配的模式108。圖3是示出圖1的系統(tǒng)100的示例操作的流程圖300。如下所述,流程圖300的操 作可以被用于改進(jìn),例如,降低系統(tǒng)100在提供匹配的模式108的集合時(shí)的平均響應(yīng)時(shí)間。 雖然圖3的流程圖300的操作302-310示出為離散的(discrete)、順序的(sequential)操 作,但是應(yīng)當(dāng)理解,圖3僅僅示出了非限制性的示例,并且其它附加的或替代的操作也可以 被包括。例如,流程圖300的操作可以相互以重疊或并行方式發(fā)生。在系統(tǒng)100的實(shí)際執(zhí) 行期間,多個(gè)操作可以包括在單一操作中,和/或操作302-310的次序可以與對(duì)于圖3中示 出和描述的次序不同(除非這里另有明確說(shuō)明)。在圖3示例中,確定要與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式(302)。例如,如上 所述,查詢(xún)模式處理器110可以從用戶(hù)或者從分離的計(jì)算系統(tǒng)(圖1中未示出)接收查詢(xún) 模式104、106。如所述,這樣的查詢(xún)模式可以相對(duì)于相應(yīng)事件流中的事件102來(lái)規(guī)定,因而 可以這里檢測(cè)與事件流102中規(guī)定模式的存在相關(guān)的信息,用于由系統(tǒng)100的用戶(hù)使用??梢越邮帐录鞯氖录?,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián)(304)。例如, 事件調(diào)度器120可以接收事件流102中的事件,可能存儲(chǔ)在事件隊(duì)列122中。如下參考圖4 描述的,如果該事件是第一或唯一接收的事件,則事件集合可以完全由該單一事件定義。但 是,在其它實(shí)現(xiàn)方式中,事件隊(duì)列122可能已經(jīng)包括了一個(gè)或更多存儲(chǔ)的事件,這些事件在 先前接收的并且作為先前事件集合的一部分。于是,新接收的事件可能被添加到這樣的先 前事件集合中,由此來(lái)定義當(dāng)前事件集合??梢源_定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行 時(shí)模式,其中每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài)(306)。例如,如上所述,狀態(tài)機(jī)生成器116可以 生成對(duì)應(yīng)于查詢(xún)模式104的狀態(tài)機(jī),由此運(yùn)行時(shí)模式生成器118可以實(shí)例化查詢(xún)模式104 的狀態(tài)機(jī)以獲得運(yùn)行時(shí)模式104a,然后運(yùn)行時(shí)模式10 被運(yùn)行時(shí)模式調(diào)度器IM接收。類(lèi) 似的說(shuō)明也可以應(yīng)用到運(yùn)行時(shí)模式104b,對(duì)于查詢(xún)模式106,類(lèi)似操作也可以由狀態(tài)機(jī)生 成器116和運(yùn)行時(shí)模式生成器118執(zhí)行,由此獲得運(yùn)行時(shí)模式106a、106b,它們可以被提供 給運(yùn)行時(shí)模式調(diào)度器124。這樣,分別由圖2A、2B、2C、和2D中所示的相應(yīng)狀態(tài)機(jī)實(shí)例代表的運(yùn)行時(shí)模式 104a、104b、106a、106b可以提供給運(yùn)行時(shí)模式調(diào)度器124。由此,模式列表管理器1 可以 將運(yùn)行時(shí)模式104a、104b、106a、106b存儲(chǔ)在待處理列表130中。在所描述的示例中,所圖 示的運(yùn)行時(shí)模式被示出為系統(tǒng)100中的第一或唯一運(yùn)行時(shí)模式,因此模式列表管理器1 可以將這些可用運(yùn)行時(shí)模式添加到另外的空待處理列表130中。然而,在實(shí)踐中,待處理 列表130可能已經(jīng)填充了先前實(shí)例化的但還沒(méi)有完成的運(yùn)行時(shí)模式,因此模式列表管理器 126可以將新的可用運(yùn)行時(shí)模式104a、104b、106a、10 添加到運(yùn)行時(shí)模式的已有待處理列表中。運(yùn)行時(shí)模式的經(jīng)排序的集合可以基于優(yōu)先級(jí)度量(priority metric)來(lái)確定,優(yōu) 先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表征了在與當(dāng)前事件集合進(jìn)行匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng) 前狀態(tài)的潛在的前進(jìn)(308)。例如,優(yōu)先級(jí)管理器1 可以為待處理列表130中的每個(gè)運(yùn)行 時(shí)模式計(jì)算這樣的優(yōu)先級(jí)度量。在給定時(shí)間點(diǎn),待處理列表130中的每個(gè)運(yùn)行時(shí)模式存在 于其相應(yīng)或各個(gè)狀態(tài)機(jī)的當(dāng)前狀態(tài)。如這里所述,優(yōu)先級(jí)度量因此可以表征每個(gè)運(yùn)行時(shí)模 式從其當(dāng)前狀態(tài)向隨后和/或最終狀態(tài)的潛在的前進(jìn),即,可以表征每個(gè)運(yùn)行時(shí)模式相對(duì) 于當(dāng)前事件集合的潛在的前進(jìn)。如所述,優(yōu)先級(jí)度量可以基于,例如,系統(tǒng)100的一個(gè)或更多元素的表征而被估 算、計(jì)算、根據(jù)經(jīng)驗(yàn)觀察、或確定。例如,優(yōu)先級(jí)度量可以基于事件流102中的事件的表征、 或者基于待處理列表130的各種運(yùn)行時(shí)模式的狀態(tài)機(jī)的謂詞條件、或者基于每個(gè)運(yùn)行時(shí)模 式相對(duì)于先前或?qū)?lái)狀態(tài)的當(dāng)前狀態(tài)來(lái)確定。因此,通常,優(yōu)先級(jí)度量可以表達(dá),例如,如果 與特定運(yùn)行時(shí)模式相匹配,則當(dāng)前事件集合中的一個(gè)或更多事件將使該運(yùn)行時(shí)模式向完成 顯著地前進(jìn)的程度。因此,如果優(yōu)先級(jí)度量如所述被用于生成待處理列表130的經(jīng)排序的集合或子 集,則在相對(duì)于事件隊(duì)列122中的當(dāng)前事件集合中的事件進(jìn)行評(píng)估時(shí),優(yōu)先級(jí)度量因此而 提供待處理列表130中那些最可能經(jīng)歷從當(dāng)前狀態(tài)向匹配狀態(tài)的顯著前進(jìn)的運(yùn)行時(shí)模式。 因此,平均來(lái)講,可以降低在當(dāng)前事件集合的每個(gè)事件的接收時(shí)間和匹配模式108的相應(yīng) 匹配模式的實(shí)際輸出之間的響應(yīng)時(shí)間。通過(guò)對(duì)比和比較,可以理解,如果沒(méi)有所述優(yōu)先級(jí)度量和相關(guān)聯(lián)的待處理列表130 的排序,則系統(tǒng)100的各種運(yùn)行時(shí)模式將以隨機(jī)或非最佳的方式被呈現(xiàn)模式匹配評(píng)估器 114。因而,在被相對(duì)于實(shí)際提供匹配模式108的匹配的運(yùn)行時(shí)模式進(jìn)行評(píng)估之前,事件可 能到達(dá)并等待過(guò)多時(shí)間和/或被徒勞地與許多運(yùn)行時(shí)模式進(jìn)行匹配。同時(shí),會(huì)經(jīng)歷顯著的 延遲,因此在接收到這樣的事件和相應(yīng)的匹配模式之間的響應(yīng)時(shí)間將會(huì)令人不滿(mǎn)意地或不 可接受地延長(zhǎng)。以下提供所述確定和使用優(yōu)先級(jí)度量的具體和詳細(xì)的示例。可以針對(duì)當(dāng)前事件集合依次評(píng)估經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式(310)。例如, 模式匹配評(píng)估器114可以從事件調(diào)度器120接收當(dāng)前事件集合,并可以從基于運(yùn)行時(shí)的調(diào) 度器1 接收運(yùn)行時(shí)模式的經(jīng)排序的集合。在后一方面,如以下詳細(xì)描述的,模式列表管理 器1 可以被配置為從待處理列表130中選擇運(yùn)行時(shí)模式的經(jīng)排序的集合,以便將其包括 在運(yùn)行時(shí)模式的實(shí)際執(zhí)行集合,即,運(yùn)行列表132中,以將該運(yùn)行列表132提供給模式匹配 評(píng)估器114。例如,模式匹配評(píng)估器114可以接收具有最高或最佳優(yōu)先級(jí)度量的運(yùn)行時(shí)模式, 然后可以進(jìn)而將那個(gè)當(dāng)前事件集合的每一個(gè)與所選擇的運(yùn)行時(shí)模式進(jìn)行比較。如果響應(yīng)于 針對(duì)當(dāng)前事件集合中的事件的評(píng)估,運(yùn)行時(shí)模式由于前進(jìn)通過(guò)其各種狀態(tài)而經(jīng)歷完成,則 模式匹配評(píng)估器114可以相應(yīng)地輸出匹配的運(yùn)行時(shí)模式,作為匹配的模式108的一部分。然 后模式匹配評(píng)估器114可以對(duì)經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式重復(fù)這些評(píng)估操作,直到所有這樣的運(yùn)行時(shí)模式都已經(jīng)被評(píng)估為止。此時(shí),圖3的操作302-310可以被全部或部分
地重復(fù)。另一方面,如果響應(yīng)于針對(duì)當(dāng)前事件集合中的事件的評(píng)估,提供給模式匹配評(píng)估 器114的經(jīng)排序的集合中的運(yùn)行時(shí)模式?jīng)]有到達(dá)其最終狀態(tài)從而被包括在匹配模式108 中,則運(yùn)行時(shí)模式可以被銷(xiāo)毀或返回待處理列表130。例如,在后一方面,特定的這樣的運(yùn) 行時(shí)模式可以在評(píng)估處理期間從四個(gè)可能狀態(tài)中的第一狀態(tài)前進(jìn)到第三狀態(tài)。在這種情況 下,這樣更新的運(yùn)行時(shí)模式可以以其新?tīng)顟B(tài)返回待處理列表130。在其它示例中,如所述,如果確定在這樣的運(yùn)行時(shí)模式和任何當(dāng)前或?qū)?lái)事件之 間的匹配都將是不可能的,則與當(dāng)前事件集合匹配的給定運(yùn)行時(shí)模式可以被刪除或銷(xiāo)毀。 例如,這樣的運(yùn)行時(shí)模式可能超過(guò)其規(guī)定的最大窗口長(zhǎng)度,因此該運(yùn)行時(shí)模式可以從系統(tǒng) 100刪除。當(dāng)然,在這樣的情況下,運(yùn)行時(shí)模式不返回待處理列表130,并且待處理列表130 的大小因此被減小,因?yàn)槠錄](méi)有包括這樣的停止或刪除的運(yùn)行時(shí)模式。如上所述,圖3的流程圖300的操作可以因此全部或部分地繼續(xù)進(jìn)行。例如,當(dāng)新 的事件從事件流102到達(dá)時(shí),上述過(guò)程可以被重復(fù)。例如,優(yōu)先級(jí)管理器1 然后可以重新 排序運(yùn)行時(shí)模式的當(dāng)前待處理列表,并將更新的經(jīng)排序的集合提供給運(yùn)行列表132,并最終 提供給模式匹配評(píng)估器114,用于與包括該新到達(dá)事件(以及,或除此還有,在模式匹配評(píng) 估器114的前一次迭代(iteration)的評(píng)估期間、已經(jīng)到達(dá)系統(tǒng)100的中間事件)的相應(yīng) 的更新事件集合進(jìn)行比較。因此,隨著時(shí)間過(guò)去,系統(tǒng)100可以被觀察到評(píng)估那些最可能與 當(dāng)前事件集合匹配的運(yùn)行時(shí)模式,所以,平均來(lái)講,在確定對(duì)于當(dāng)前事件集合和相應(yīng)的運(yùn)行 時(shí)模式的這樣的匹配模式時(shí)響應(yīng)時(shí)間可以被最小化。圖4是示出圖1的系統(tǒng)100的更詳細(xì)的示例操作的流程圖400。在下面在圖1的 系統(tǒng)100的上下文中相對(duì)于圖2A-2E的具體示例詳細(xì)討論圖4的流程圖400的操作。在圖4的示例中,可以在系統(tǒng)100接收查詢(xún)模式002)。例如,查詢(xún)模式處理器 110可以接收查詢(xún)模式104、106。雖然圖1和圖2A-2E的簡(jiǎn)化示例僅僅描述了兩個(gè)查詢(xún)模 式104、106,但是應(yīng)當(dāng)理解,可以包括大量的這樣的查詢(xún)模式。而且,這樣的查詢(xún)模式可以在 系統(tǒng)100的執(zhí)行期間的幾乎任何時(shí)間被更新并添加到系統(tǒng)100,并且合并到其操作中。然后,對(duì)于所接收的查詢(xún)模式,可以生成相應(yīng)的狀態(tài)機(jī)004)。例如,狀態(tài)機(jī)生成 器116可以基于查詢(xún)模式104生成狀態(tài)機(jī)模板,以及反映查詢(xún)模式106的要求和約束的另 外的狀態(tài)機(jī)模板。然后可以在系統(tǒng)100接收時(shí)間006),諸如,例如,事件流102中的事件。如果接收 的事件觸發(fā)了當(dāng)前運(yùn)行時(shí)模式和相應(yīng)狀態(tài)機(jī)的實(shí)例化,則相應(yīng)的運(yùn)行時(shí)模式和相關(guān)聯(lián)的實(shí) 例化的狀態(tài)機(jī)可以響應(yīng)于此而被生成,并存儲(chǔ)在待處理列表130中(406)。例如,如上所述, 對(duì)應(yīng)于運(yùn)行時(shí)模式10 的實(shí)例化狀態(tài)機(jī)圖2A可以響應(yīng)于圖2E的事件%或先前事件而被 實(shí)例化并放到待處理列表130中。類(lèi)似地,對(duì)應(yīng)于圖2C的運(yùn)行時(shí)模式106a的實(shí)例化狀態(tài) 機(jī)可以類(lèi)似地響應(yīng)于觸發(fā)運(yùn)行時(shí)模式10 的創(chuàng)建的同一接收事件而被實(shí)例化。但在此時(shí), 觸發(fā)圖2B和2D的運(yùn)行時(shí)模式104b、106b的相應(yīng)實(shí)例化的事件還沒(méi)有被接收到。雖然如此,在系統(tǒng)100的這些以及隨后的操作期間,可能在事件調(diào)度器120處接收 到另外的事件006),因此,在隨后描述的與事件隊(duì)列122中的當(dāng)前事件集合與待處理列表 130的相應(yīng)經(jīng)排序的集合之間的匹配相關(guān)聯(lián)的操作的同時(shí),事件隊(duì)列122可以處于被更新的過(guò)程中。事件調(diào)度器120可以檢查以確定是否已經(jīng)接收到新的事件用于包括在事件隊(duì)列 122中(412)。雖然在所描述的示例中,情況是在流程圖400的先前迭代或稍后迭代的操 作中,相對(duì)于先前事件集合可能沒(méi)有接收到新的事件,從而事件調(diào)度器120可以簡(jiǎn)單地持 續(xù)等待(414)新的、隨后的事件的到達(dá)。在本示例中,隨著運(yùn)行時(shí)模式l(Ma、106a的實(shí)例化,圖2A的運(yùn)行時(shí)模式10 可 以被認(rèn)為處于當(dāng)前狀態(tài)20 ,而圖2C的運(yùn)行時(shí)模塊106a可以被認(rèn)為處于當(dāng)前狀態(tài)216a。 為了示例目的,可以假設(shè)系統(tǒng)100在圖4的示例被配置為要從待處理列表130確定的經(jīng) 排序的集合可以被配置為包括待處理列表130中的兩個(gè)運(yùn)行時(shí)模式,它們被確定為具有在 待處理列表130的全部運(yùn)行時(shí)模式中相應(yīng)的兩個(gè)最高的優(yōu)先級(jí)度量。然后,在這個(gè)示例 的當(dāng)前點(diǎn),只有兩個(gè)運(yùn)行時(shí)模式104a、106a存在,因此這些運(yùn)行時(shí)模式可以被認(rèn)為構(gòu)成經(jīng) 排序的集合。在示例中,這樣的確定因此代表了針對(duì)優(yōu)先級(jí)度量將待處理列表130分類(lèi) (sorting),以獲得經(jīng)排序的集合(416)。當(dāng)然,如以下詳細(xì)描述的,圖4的操作400的將來(lái) 迭代將典型地包括對(duì)待處理列表130的每個(gè)運(yùn)行時(shí)模式實(shí)際計(jì)算優(yōu)先級(jí)度量,以及隨后基 于優(yōu)先級(jí)度量對(duì)待處理列表130進(jìn)行分類(lèi)以獲得(在這個(gè)示例中)經(jīng)排序的集合的兩個(gè)運(yùn) 行時(shí)模式。但是,在本示例情況中,待處理列表130的經(jīng)排序的集合被簡(jiǎn)單地并入運(yùn)行列表 132中,用于隨后提供給模式匹配評(píng)估器114(418)。此時(shí),不是全部經(jīng)排序的集合的運(yùn)行時(shí) 模式都已經(jīng)被評(píng)估G20),因此可以繼續(xù)針對(duì)事件隊(duì)列122的當(dāng)前事件集合來(lái)評(píng)估經(jīng)排序 的集合中的第一個(gè)選擇的運(yùn)行時(shí)模式的操作022)。在簡(jiǎn)化的本示例中,例如,運(yùn)行時(shí)模式10 可以與由單一事件%組成的當(dāng)前事 件集合進(jìn)行匹配,因此不會(huì)被觀察到存在運(yùn)行時(shí)模式10 的匹配或完成、或者運(yùn)行時(shí)模式 10 的當(dāng)前狀態(tài)的前進(jìn)GM)。當(dāng)然,在其它將來(lái)的示例中,這樣的匹配可以被實(shí)現(xiàn),在這 種情況下,匹配的模式可以被輸出026)。否則,可以評(píng)估所討論的運(yùn)行時(shí)模式10 以確定停止其執(zhí)行的必要性(428),比 如如果該運(yùn)行時(shí)模式10 將要到達(dá)在查詢(xún)模式104中規(guī)定的最大窗口長(zhǎng)度。再有,如果這 樣的情況將要發(fā)生,則被停止的運(yùn)行時(shí)模式可以被從系統(tǒng)100刪除或銷(xiāo)毀。如果當(dāng)前事件集合的最后一個(gè)事件還沒(méi)有到達(dá)032),則當(dāng)前事件集合的隨后事 件可以再次與當(dāng)前考慮中的運(yùn)行時(shí)模式進(jìn)行匹配022)。在所提供示例的情況下,由于只 有單一事件被包括在單一當(dāng)前事件集合中,則在這個(gè)示例中,最終事件可以被認(rèn)為已到達(dá) (432),因此當(dāng)前考慮的運(yùn)行時(shí)模式可以被移動(dòng)到待處理列表130(434)。如果還沒(méi)有到達(dá)經(jīng)排序的集合的最終運(yùn)行時(shí)模式020),即處于在當(dāng)前示例中由 于運(yùn)行時(shí)模式106a還沒(méi)有被評(píng)估而導(dǎo)致的情況,則相對(duì)于當(dāng)前事件集合中的事件,對(duì)經(jīng)排 序的集合的下一個(gè)運(yùn)行時(shí)模式(106a)可以重復(fù)上述操作422-434。然后,將到達(dá)在這個(gè)示 例中經(jīng)排序的集合中的最終運(yùn)行時(shí)模式(420),因此操作會(huì)繼續(xù)隨后的關(guān)于是否已經(jīng)接收 到新事件的確定(412)。在示例中,可能發(fā)生在操作416-434如上所述被執(zhí)行期間的中間時(shí)間、在事件調(diào) 度器120接收到另外的事件ei、ei和% (406,410)。隨后,圖2B和2D的相應(yīng)運(yùn)行時(shí)模式104b 和106b可以由運(yùn)行時(shí)模式生成器118來(lái)實(shí)例化,并包括在待處理列表130中008)。因此,此時(shí),待處理列表130包括對(duì)應(yīng)于圖2A-2D的全部四個(gè)運(yùn)行時(shí)模式l(Ma、104b、106a、106b。 而且此時(shí),圖2A和2C的運(yùn)行時(shí)模式10 和106a可以仍然存在于各自的當(dāng)前狀態(tài)20 和 216a中,這是因?yàn)橄惹懊枋龅牟僮?16-434的評(píng)估沒(méi)有使所述運(yùn)行時(shí)模式104a、106a從這 些狀態(tài)前進(jìn)。因此,由于在事件隊(duì)列中實(shí)際已經(jīng)接收到新事件G12),則通過(guò)使用適當(dāng)優(yōu)先級(jí)度 量的優(yōu)先級(jí)管理器1 可以對(duì)更新的待處理列表130進(jìn)行操作,從而基于所計(jì)算的到達(dá)其 運(yùn)行時(shí)模式的優(yōu)先級(jí)度量對(duì)待處理列表130進(jìn)行分類(lèi)(sort),從而由此確定更新的或當(dāng)前 經(jīng)排序的集合G16)。為了示例的目的,可能會(huì)出現(xiàn)優(yōu)先級(jí)管理器1 確定經(jīng)排序的集合的 兩個(gè)運(yùn)行時(shí)模式以及流程圖400的當(dāng)前迭代包括圖2A和2B的運(yùn)行時(shí)模式10 和104b (因 為,如上所述,假設(shè)為了示例目的,經(jīng)排序的集合包括兩個(gè)最高排序的(highest-ranked) 運(yùn)行時(shí)模式)。在這種情況下,這兩個(gè)運(yùn)行時(shí)模式可以從待處理列表130移動(dòng)到運(yùn)行列表 132(418)。由于當(dāng)前經(jīng)排序的集合的兩個(gè)運(yùn)行時(shí)模式l(Ma、104b中的任何一個(gè)都沒(méi)有被評(píng) 估G20),于是可以針對(duì)當(dāng)前事件集合中的第一事件進(jìn)行對(duì)經(jīng)排序的集合中的第一運(yùn)行時(shí) 模式的評(píng)估022)。在示例中,運(yùn)行時(shí)模式10 可以與事件ei匹配,如圖2A所示,這滿(mǎn)足 了謂詞條件210a并將運(yùn)行時(shí)模式10 的狀態(tài)機(jī)前進(jìn)到狀態(tài)20如。由于這個(gè)前進(jìn)沒(méi)有導(dǎo)致 運(yùn)行時(shí)模式10 的完成或匹配(424),并且沒(méi)有導(dǎo)致運(yùn)行時(shí)模式10 的停止(428),則將 做出關(guān)于是否已經(jīng)到達(dá)當(dāng)前事件集合的最后一個(gè)事件的確定(432)。由于在當(dāng)前事件集合中還包括另外的事件,所以繼續(xù)以事件集合中的下一個(gè)事件 ei進(jìn)行評(píng)估(42 ,并這樣通過(guò)操作似4、4觀和432、直到事件%到達(dá)并被針對(duì)運(yùn)行時(shí)模式 104a進(jìn)行評(píng)估(422)。如圖2A所示,事件%與謂詞條件21 匹配,并使運(yùn)行時(shí)模式10 的狀態(tài)從狀態(tài)20 前進(jìn)到狀態(tài)206a。這個(gè)前進(jìn)沒(méi)有創(chuàng)鍵匹配(424)、或運(yùn)行時(shí)模式10 的停止0觀),而是,在該示例中,代表當(dāng)前事件集合中的最后一個(gè)事件032)。因此,運(yùn)行 時(shí)模式10 可以被返回到待處理列表130(434)。由于運(yùn)行時(shí)模式的經(jīng)排序的集合還沒(méi)有被完全評(píng)估020),因此可以繼續(xù)相對(duì) 于事件對(duì)經(jīng)排序的集合中的第二運(yùn)行時(shí)模式104b進(jìn)行評(píng)估(422)。操作如圖4所示、 以及完全如運(yùn)行時(shí)模式10 所描述的那樣繼續(xù),基于事件%及其謂詞條件210b部分 (installment)的評(píng)估,具有使運(yùn)行時(shí)模式104b的狀態(tài)從狀態(tài)202b前進(jìn)到狀態(tài)204b的最 終效果(net effect) 0最終,運(yùn)行時(shí)模式104b也可以返回待處理列表130,此時(shí)經(jīng)排序的 集合的全部運(yùn)行時(shí)模式將全都已經(jīng)被評(píng)估G20)。在上述最近的事件集合的評(píng)估期間,另外的事件可能已經(jīng)由事件調(diào)度器120接 收。例如,其它的中間事件61和事件%可能已經(jīng)被接收,如圖2E的時(shí)間線所示。基于在事 件隊(duì)列122中接收到這些新事件012),可以重復(fù)上述操作416-434。例如,運(yùn)行時(shí)模式的當(dāng)前待處理列表可以被重新分類(lèi)或重新排序,并且基于結(jié)果 得到的所計(jì)算的優(yōu)先級(jí)度量,可以確定具有最高優(yōu)先級(jí)度量并因此形成經(jīng)排序的集合的兩 個(gè)運(yùn)行時(shí)模式可以是運(yùn)行時(shí)模式10 和運(yùn)行時(shí)模式106a。例如,兩個(gè)運(yùn)行時(shí)模式104a、 106a可以被觀察到都處于緊挨最終狀態(tài)(next-to-final state) 2Ha、218a,因此,結(jié)合影 響優(yōu)先級(jí)度量的其它潛在因素,可以被確定為具有前進(jìn)到它們的各自最終狀態(tài)的最高的預(yù) 期和/或最低的成本。
于是,在該示例中,結(jié)果的經(jīng)排序的集合被并入運(yùn)行列表132,然后連同由事件調(diào) 度器120呈現(xiàn)給模式匹配評(píng)估器114的當(dāng)前事件集合中的事件一起由基于運(yùn)行的調(diào)度器 124呈現(xiàn)給模式匹配評(píng)估器114。在如上所述應(yīng)用操作420-434時(shí),可以觀察到針對(duì)當(dāng)前事 件集合對(duì)運(yùn)行時(shí)模式10 的評(píng)估可以導(dǎo)致滿(mǎn)足謂詞條件21 的事件e3的評(píng)估022),這 因而在運(yùn)行時(shí)模式10 到達(dá)其最終狀態(tài)208a時(shí)創(chuàng)建了運(yùn)行時(shí)模式10 的匹配0 ),從 而可以輸出完成的運(yùn)行時(shí)模式l(MaG26)作為匹配的模式108。類(lèi)似解釋可以應(yīng)用到針對(duì) e3之前的當(dāng)前事件集合ei對(duì)運(yùn)行時(shí)模式106a的評(píng)估,因此運(yùn)行時(shí)模式106a也可以從系統(tǒng) 100輸出作為匹配模式108之一。在圖4的流程圖400操作的最終迭代中,剩下的運(yùn)行時(shí)模式104b和106b可以構(gòu) 成經(jīng)排序的集合,并且針對(duì)更新的和新的當(dāng)前事件集合以上述方式對(duì)該經(jīng)排序的集合進(jìn)行 評(píng)估,該事件集合可以包括直到事件%的剩余事件。在這種情況下,以上述方式應(yīng)用操作 416-434可以被觀察到導(dǎo)致運(yùn)行時(shí)模式104b和106b的匹配或完成,用于輸出作為匹配模 式108的一部分。這樣,可以以與事件集合和匹配模式的集合的最小平均響應(yīng)時(shí)間相關(guān)聯(lián) 的方式,針對(duì)不斷更新的事件集合對(duì)系統(tǒng)100的各種運(yùn)行時(shí)模式進(jìn)行評(píng)估。圖5和圖6提供了系統(tǒng)100的各個(gè)元素的另外的和更加詳細(xì)的示例以及相關(guān)討論 及其變化。具體來(lái)講,圖5提供了實(shí)施為不確定有限狀態(tài)機(jī)或不確定有限自動(dòng)機(jī)(NFA)的 示例狀態(tài)機(jī)。這樣的NFA代表一種有限狀態(tài)機(jī),其中,對(duì)于每對(duì)狀態(tài)和相關(guān)謂詞條件,可能 存在一個(gè)或更多的下一個(gè)狀態(tài)。NFA還可以被表達(dá)為確定性有限自動(dòng)機(jī)(DFA),其中,該后 續(xù)狀態(tài)都被唯一地確定。雖然在以下示例中只詳細(xì)討論了 NFA,但是也可以使用其他狀態(tài)機(jī) 表述(formulations)。圖5和圖6還對(duì)被稱(chēng)為或包括Kleene閉包模式(closure pattern)的一種查詢(xún) 模式進(jìn)行了討論。如本領(lǐng)域所熟知的,Kleene閉包模式通常是指包含一系列有限長(zhǎng)度的 事件的模式,并且所有這些事件都滿(mǎn)足某個(gè)條件。Kleene閉包或Kleene星號(hào)模式(star pattern)是指通過(guò)連接(concatenating)集合S中的零個(gè)或更多個(gè)串(string)而生成的 全部串的集合,也可以寫(xiě)作S*。一個(gè)相關(guān)的模式已知為Kleene加號(hào)模式(plus pattern), 并且是對(duì)于集合S定義的,這樣,S+就是包含S的最小的集合,這樣,S+就是在連接下閉合 的(closed under concatenation)。已知Kleene模式在用作查詢(xún)模式104、106之一時(shí)具 有很高的復(fù)雜度和難度。在以下圖5和圖6的討論中,用到以下符號(hào)和術(shù)語(yǔ)。事件流S(諸如圖1的事件流 102)是線性次序的事件序列S = Ie1 ;e2 ; ;en}。每個(gè)事件對(duì)象都記錄了真實(shí)世界的 事件,該事件包括事件類(lèi)型、一組屬性、以及指示其何時(shí)被創(chuàng)建的時(shí)鐘的時(shí)戳。針對(duì)事件流 的查詢(xún)模式q是q = (ES ;Pr ;W)。而ES是事件序列模式,ft·是關(guān)于ES中事件的屬性的一 組謂詞以及選擇事件的策略。W是指示事件在ES中有效(valid)的時(shí)間段的窗口大小。因 此,在這個(gè)符號(hào)中,模式匹配(即,為了獲得模式匹配108)是在S中找到滿(mǎn)足查詢(xún)q的事件 的過(guò)程。運(yùn)行時(shí)模式(r)如上所述包括當(dāng)前正在被評(píng)估或可用于進(jìn)行評(píng)估的查詢(xún)模式的 實(shí)例。被完成并被返回作為查詢(xún)結(jié)果的運(yùn)行時(shí)模式被稱(chēng)為匹配的模式或模式匹配(pattern matching, PM)。啟動(dòng)新的運(yùn)行時(shí)模式的開(kāi)始狀態(tài)的事件被稱(chēng)為開(kāi)始事件,而完成運(yùn)行時(shí)模 式的最后一個(gè)事件被稱(chēng)為結(jié)束事件。然后,模式匹配PM的響應(yīng)時(shí)間是RT = tF-te,其中,tF是模式匹配PM的生成時(shí)間,te是結(jié)束事件ei的到達(dá)時(shí)間。然后,當(dāng)?shù)趇個(gè)事件ei的到達(dá)能夠生成叫模式匹配時(shí),可以定義平均響應(yīng)時(shí)間。 然后,查詢(xún)集合Q = Iq1, q2,. . . }的平均響應(yīng)時(shí)間可以如等式1中所示來(lái)定義
Γ , , hi=i Lf=1 KJ.ijART(B) =^等式(1)在等式(1)中,RTij是在結(jié)束事件ei的到達(dá)與具有結(jié)束事件4的第j個(gè)運(yùn)行時(shí)模 式的完成時(shí)間之間的持續(xù)時(shí)間。因此,對(duì)于圖5,所示NFA自動(dòng)機(jī)500可以被認(rèn)為是五A(quintuple A) (S,S0, SF, Σ, θ ),其中,S是狀態(tài)502-512的集合。&是開(kāi)始狀態(tài),而$是最終狀態(tài)。Σ是代表在狀 態(tài)之間可能的轉(zhuǎn)變的有向邊(directed edge)的集合,而θ是附加到邊的公式的集合。然 后,給定事件序列模式為SEQ(e1; %,...,Effl)的模式匹配查詢(xún),可以由狀態(tài)機(jī)生成器116創(chuàng) 建具有m+2個(gè)狀態(tài)(標(biāo)為&,...,SM, Sf)的NFA,其中,S0是開(kāi)始狀態(tài)而$是最終狀態(tài)。每個(gè)狀態(tài)5“0彡i彡m)都具有到下一個(gè)狀態(tài)的前向邊(forward edge),稱(chēng)為開(kāi)始 邊(begin edge),具有附加到其的公式(標(biāo)為514),以及自循環(huán)邊(self-loop edge), 稱(chēng)為忽略邊(ignore edge),具有附加的公式θ〖+1 516。附加到、的最后一個(gè)前向邊稱(chēng)為進(jìn) 行邊(proceed edge)。還有附加到每個(gè)狀態(tài)(除了開(kāi)始狀態(tài))的另一個(gè)自循環(huán)邊,稱(chēng)為獲 取邊(take edge),這樣θ〖+1 518是附加到Si的獲取邊的公式(如圖5所示)。因此,在由模式匹配評(píng)估器114執(zhí)行的匹配/評(píng)估過(guò)程期間,如上所述,運(yùn)行時(shí)模 式r從開(kāi)始狀態(tài)開(kāi)始,并沿著其公式被r以當(dāng)前事件滿(mǎn)足的邊移動(dòng)。當(dāng)運(yùn)行時(shí)模式r沿著開(kāi) 始邊或獲取邊移動(dòng)時(shí),當(dāng)前事件e被r消費(fèi)(consume)和接受作為匹配序列的一部分。相 比之下,當(dāng)r沿著忽略邊移動(dòng)時(shí),e被r消費(fèi)但是不被r接受。具體來(lái)說(shuō),進(jìn)行邊可以不消費(fèi) 任何事件,因此只要運(yùn)行時(shí)模式r滿(mǎn)足附加到進(jìn)行邊的公式就可以立即沿著進(jìn)行邊移動(dòng)。 如果有一些邊同時(shí)被滿(mǎn)足,則r被分裂。父(parent)運(yùn)行時(shí)模式r沿著開(kāi)始邊移動(dòng)(如果 沒(méi)有開(kāi)始/進(jìn)行邊被滿(mǎn)足則沿著獲取邊移動(dòng)),而其子(children)沿著其它邊移動(dòng)。每次 r消費(fèi)新的事件時(shí)還檢查r的窗口邊界(例如,由WITHIN子句確定,如下所述)。如果r的 處理時(shí)間超過(guò)其窗口邊界,或者r不能以當(dāng)前事件沿任何變移動(dòng),則其被拒絕。當(dāng)r到達(dá)最 終狀態(tài)時(shí),則r的當(dāng)前內(nèi)容(即,接受的事件)被輸出作為模式匹配。在θ Β的構(gòu)造中,查詢(xún)模式的WHERE子句可以首先被轉(zhuǎn)換為合取范式 (conjunctive normal form),并且θ〖是只涉及Ei (或者如果Ei是Kleene加號(hào)模式,則為Ei 的第一實(shí)例)及其在事件序列模式中的在前事件的合取項(xiàng)。當(dāng)Ei-I是Kleene加號(hào)模式,并 且Ei-I的最后一個(gè)實(shí)例是涉及合取項(xiàng)的最后一個(gè)事件,則合取項(xiàng)應(yīng)當(dāng)也包括在Gf中。如果 沒(méi)有這樣的合取項(xiàng),則θ〖是真(S卩,匹配任何事件)。具體來(lái)說(shuō),為真,除非Em是Kleene 加號(hào)模式并且Em的最后一個(gè)實(shí)例出現(xiàn)在其WHERE子句中。在θ tW構(gòu)造中,如果Ei是Kleene加號(hào)模式,則θ「是涉及Ei的當(dāng)前實(shí)例及其出 現(xiàn)在事件序列模式中的在前事件的合取項(xiàng)。如果Ei是單個(gè)事件,則θ「為假(即,沒(méi)有事件 匹配)。在θ 1的構(gòu)造中,使用至少三個(gè)事件選擇策略,包括嚴(yán)格的鄰接(strictcontiguity),跳過(guò)直到下一個(gè)匹配,并且跳過(guò)直到任何匹配。θ 1可以在三個(gè)策略下取得不 同的值。9丨+1對(duì)于嚴(yán)格的鄰接為假,對(duì)于跳過(guò)直到下一個(gè)匹配是ιθ;^,并且對(duì)于跳過(guò)
直到任何匹配為真。而且,0i =,0f。在圖1-4的上述示例中,優(yōu)先級(jí)度量被一般地定義,并且可以理解為由本領(lǐng)域技 術(shù)人員按需要或按期望而被公式化(formulated)。但是,通過(guò)具體示例,優(yōu)先級(jí)度量可以 使用運(yùn)行時(shí)模式的預(yù)期E(r)和運(yùn)行時(shí)模式的C(r)來(lái)計(jì)算。也就是,上述等式1中平均響 應(yīng)時(shí)間的定義反映了結(jié)束事件的到達(dá)和模式匹配的生成之間的持續(xù)時(shí)間。因此,為了最小 化該持續(xù)時(shí)間,如上所述,最好將優(yōu)先級(jí)給予將生成具有更高可能性和更少成本的模式匹 配的運(yùn)行時(shí)模式。P(r) = {PI ;P2 ; ;Pn}定義為從運(yùn)行時(shí)模式r的當(dāng)前狀態(tài)Sr到 最終狀態(tài)的獨(dú)立路徑的集合,路徑Hr為r已經(jīng)經(jīng)過(guò)的歷史路徑。還有,使L (Pi)為Pi的長(zhǎng) 度,而i^CPHr)為給定r的內(nèi)容(r的接受的事件)r成功經(jīng)過(guò)路徑Pi的條件概率。然后, r到達(dá)最終狀態(tài)的概率應(yīng)當(dāng)為P(r)中全部Pi的{Pi I r)的總和。滬(Pi I r)進(jìn)一步由r 滿(mǎn)足對(duì)于Pi的各個(gè)條件的概率來(lái)確定,其可以被看作在Pi上的每個(gè)在前條件都被r滿(mǎn)足 的條件下的條件概率。使用上述符號(hào),可以相對(duì)于流S的事件分布(distribution)和模式查詢(xún)q來(lái)定義 運(yùn)行時(shí)模式的預(yù)期,這樣運(yùn)行時(shí)模式r的預(yù)期為r生成匹配S的模式的概率,如等式2所示,
權(quán)利要求
1.一種包括記錄在計(jì)算機(jī)可讀介質(zhì)上的指令的系統(tǒng),該系統(tǒng)包括查詢(xún)模式處理器,被配置為確定要被與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式,并且被 配置為確定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行時(shí)模式, 而且每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài);事件調(diào)度器,被配置為接收事件流中的事件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);運(yùn)行時(shí)模式調(diào)度器,被配置為基于優(yōu)先級(jí)度量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu) 先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表征了在當(dāng)前事件集合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài) 的前進(jìn);以及模式匹配評(píng)估器,被配置為針對(duì)當(dāng)前事件集合依次評(píng)估所述經(jīng)排序的集合中的每個(gè)運(yùn) 行時(shí)模式。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述查詢(xún)模式處理器包括狀態(tài)機(jī)生成器,該狀態(tài)機(jī) 生成器被配置為生成至少一個(gè)有限狀態(tài)機(jī)以代表所述至少一個(gè)查詢(xún)模式,所述至少一個(gè)有 限狀態(tài)機(jī)包括通過(guò)具有要被針對(duì)事件流中的事件進(jìn)行評(píng)估的謂詞條件的邊連接的多個(gè)狀 態(tài)。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述查詢(xún)模式處理器包括運(yùn)行時(shí)模式生成器,該運(yùn) 行時(shí)模式生成器被配置為響應(yīng)于事件流中的相應(yīng)觸發(fā)事件而生成所述多個(gè)運(yùn)行時(shí)模式中 的每個(gè)運(yùn)行時(shí)模式。
4.如權(quán)利要求1所述的系統(tǒng),其中,所述事件調(diào)度器包括事件隊(duì)列,該事件隊(duì)列被配置 為存儲(chǔ)當(dāng)前事件集合。
5.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式調(diào)度器包括模式列表管理器,該模 式列表管理器被配置為維護(hù)可用于進(jìn)行匹配的運(yùn)行時(shí)模式的待處理列表以及包括該待處 理列表的子集的運(yùn)行列表,該運(yùn)行列表包括用于從其提供給所述模式匹配評(píng)估器的經(jīng)排序 的集合。
6.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式調(diào)度器包括優(yōu)先級(jí)管理器,該優(yōu)先 級(jí)管理器被配置為基于事件流的特征來(lái)計(jì)算所述優(yōu)先級(jí)度量。
7.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式調(diào)度器包括優(yōu)先級(jí)管理器,該優(yōu)先 級(jí)管理器被配置為基于每個(gè)運(yùn)行時(shí)模式的當(dāng)前狀態(tài)來(lái)計(jì)算所述優(yōu)先級(jí)度量。
8.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式被表達(dá)為有限狀態(tài)機(jī),該有限狀態(tài) 機(jī)包括通過(guò)具有要被針對(duì)事件流中的事件進(jìn)行評(píng)估的謂詞條件的邊連接的多個(gè)狀態(tài),并且 其中,所述運(yùn)行時(shí)模式調(diào)度器包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置為計(jì)算用于每個(gè) 運(yùn)行時(shí)模式的優(yōu)先級(jí)度量,該優(yōu)先級(jí)度量包括基于通過(guò)每個(gè)狀態(tài)機(jī)的每個(gè)獨(dú)立路徑的長(zhǎng)度 而確定的完成預(yù)期以及每個(gè)路徑的完成概率,包括考慮到每個(gè)路徑的各個(gè)謂詞條件的每個(gè) 路徑的完成的條件概率。
9.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式被表達(dá)為有限狀態(tài)機(jī),該有限狀態(tài) 機(jī)包括通過(guò)具有要被針對(duì)事件流中的事件進(jìn)行評(píng)估的謂詞條件的邊連接的多個(gè)狀態(tài),并且 其中,所述運(yùn)行時(shí)模式調(diào)度器包括優(yōu)先級(jí)管理器,該優(yōu)先級(jí)管理器被配置為計(jì)算每個(gè)運(yùn)行 時(shí)模式的優(yōu)先級(jí)度量,該優(yōu)先級(jí)度量包括基于通過(guò)每個(gè)狀態(tài)機(jī)的每個(gè)獨(dú)立路徑的長(zhǎng)度而確 定的完成成本。
10.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式調(diào)度器包括優(yōu)先級(jí)管理器,該優(yōu) 先級(jí)管理器被配置來(lái)計(jì)算基于模式完成預(yù)期和完成成本的優(yōu)先級(jí)度量。
11.如權(quán)利要求10所述的系統(tǒng),其中,所述優(yōu)先級(jí)管理器被配置為在設(shè)計(jì)時(shí)使用偽運(yùn) 行時(shí)模式來(lái)估算和存儲(chǔ)運(yùn)行時(shí)模式的每個(gè)狀態(tài)的預(yù)期和成本,并且被配置為在運(yùn)行時(shí)將當(dāng) 前事件分布和運(yùn)行時(shí)模式的當(dāng)前狀態(tài)進(jìn)行比較,以檢索相應(yīng)的預(yù)期和成本。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式被表達(dá)為有限狀態(tài)機(jī),該有限狀 態(tài)機(jī)包括通過(guò)具有謂詞條件的邊連接的多個(gè)狀態(tài),并且其中,所述模式匹配評(píng)估器被配置 為通過(guò)將當(dāng)前事件集合中的事件與所述經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式進(jìn)行比較來(lái)確 定當(dāng)前事件集合中的每個(gè)事件是否滿(mǎn)足其當(dāng)前謂詞條件,來(lái)評(píng)估每個(gè)運(yùn)行時(shí)模式。
13.如權(quán)利要求1所述的系統(tǒng),其中,所述模式匹配評(píng)估器被配置為輸出所述經(jīng)排序的 集合中匹配的和完成的所有運(yùn)行時(shí)模式作為匹配的模式,并且進(jìn)一步被配置為將所述經(jīng)排 序的集合中的任何剩余運(yùn)行時(shí)模式返回所述運(yùn)行時(shí)模式調(diào)度器。
14.如權(quán)利要求13所述的系統(tǒng),其中,所述運(yùn)行時(shí)模式調(diào)度器被配置為接收所述剩余 運(yùn)行時(shí)模式,用于與任何新的可用的運(yùn)行時(shí)模式進(jìn)行組合,并且被配置為重新確定所述組 合中的每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí)度量,以確定要被針對(duì)更新的事件集合進(jìn)行評(píng)估的更新的 經(jīng)排序的集合。
15.一種用于執(zhí)行存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的指令的計(jì)算機(jī)實(shí)施的方法,該方法 包括確定要與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式;接收事件流中的事件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);確定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行時(shí)模式,而 且每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài);基于優(yōu)先級(jí)度量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu)先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表 征了在與當(dāng)前事件集合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài)的前進(jìn);以及針對(duì)當(dāng)前事件集合依次評(píng)估所述經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式。
16.如權(quán)利要求15所述的方法,其中,確定多個(gè)運(yùn)行時(shí)模式包括生成相應(yīng)的多個(gè)有限 狀態(tài)機(jī)以代表每個(gè)運(yùn)行時(shí)模式,每個(gè)有限狀態(tài)機(jī)包括通過(guò)具有要被針對(duì)事件流中的事件進(jìn) 行評(píng)估的謂詞條件的邊連接的多個(gè)狀態(tài)。
17.如權(quán)利要求15所述的方法,其中所述評(píng)估包括輸出所述經(jīng)排序的集合中匹配的和完成的所有運(yùn)行時(shí)模式作為匹配的模式;以及返回所述經(jīng)排序的集合中的任何剩余運(yùn)行時(shí)模式,用于與任何新的可用的運(yùn)行時(shí)模式 進(jìn)行組合。
18.如權(quán)利要求17所述的方法,包括重新確定所述組合中的每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí)度量,以確定要被針對(duì)更新的事件集 合進(jìn)行評(píng)估的更新的經(jīng)排序的集合。
19.一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品被有形地體現(xiàn)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上 并包括指令,當(dāng)被執(zhí)行時(shí)所述指令被配置為確定要與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式;接收事件流中的事件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);確定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行時(shí)模式,而 且每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài);基于優(yōu)先級(jí)度量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu)先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表 征了在與當(dāng)前事件集合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài)的前進(jìn);以及 針對(duì)當(dāng)前事件集合依次評(píng)估所述經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式。
20.如權(quán)利要求19所述的計(jì)算機(jī)程序產(chǎn)品,其中,當(dāng)被執(zhí)行時(shí)所述指令進(jìn)一步被配置為輸出所述經(jīng)排序的集合中匹配的和完成的所有運(yùn)行時(shí)模式作為匹配的模式; 返回所述經(jīng)排序的集合中的任何剩余運(yùn)行時(shí)模式,用于與任何新的可用的運(yùn)行時(shí)模式 進(jìn)行組合;以及重新確定所述組合中的每個(gè)運(yùn)行時(shí)模式的優(yōu)先級(jí)度量,以確定要被針對(duì)更新的事件集 合進(jìn)行評(píng)估的更新的經(jīng)排序的集合。
全文摘要
本發(fā)明公開(kāi)用于在對(duì)流事件的查詢(xún)模式匹配期間進(jìn)行快速響應(yīng)的調(diào)度。提供一種系統(tǒng),其包括查詢(xún)模式處理器,被配置為確定要被與事件流進(jìn)行匹配的至少一個(gè)查詢(xún)模式,并且被配置為確定代表當(dāng)前可用于進(jìn)行匹配的至少一個(gè)查詢(xún)模式的活動(dòng)實(shí)例的多個(gè)運(yùn)行時(shí)模式,而且每個(gè)運(yùn)行時(shí)模式包括多個(gè)狀態(tài);事件調(diào)度器,被配置為接收事件流中的事件,該事件與事件流中的當(dāng)前事件集合相關(guān)聯(lián);運(yùn)行時(shí)模式調(diào)度器,被配置為基于優(yōu)先級(jí)度量確定運(yùn)行時(shí)模式的經(jīng)排序的集合,該優(yōu)先級(jí)度量為每個(gè)運(yùn)行時(shí)模式表征了在當(dāng)前事件集合匹配時(shí)每個(gè)運(yùn)行時(shí)模式從其當(dāng)前狀態(tài)的前進(jìn);以及模式匹配評(píng)估器,被配置為針對(duì)當(dāng)前事件集合依次評(píng)估所述經(jīng)排序的集合中的每個(gè)運(yùn)行時(shí)模式。
文檔編號(hào)G06Q40/00GK102096848SQ20091025043
公開(kāi)日2011年6月15日 申請(qǐng)日期2009年12月9日 優(yōu)先權(quán)日2009年12月9日
發(fā)明者單名謙, 張錦, 閆鶯 申請(qǐng)人:Sap股份公司