两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

復(fù)雜事件處理中對于參數(shù)化的查詢/視圖的支持的制作方法

文檔序號:6362193閱讀:202來源:國知局
專利名稱:復(fù)雜事件處理中對于參數(shù)化的查詢/視圖的支持的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實施例涉及數(shù)據(jù)處理系統(tǒng),更具體地涉及關(guān)于具有時間語義的流數(shù)據(jù)的系統(tǒng)和應(yīng)用。
背景技術(shù)
通常,復(fù)雜事件處理(CEP)是實時聚集來自分布式的基于消息的系統(tǒng)、數(shù)據(jù)庫和應(yīng)用的信息并且動態(tài)地應(yīng)用規(guī)則以辨別否則將被忽視的模式和趨勢的方法。這為公司提供跨高度復(fù)雜的、分布式、和互異的IT環(huán)境識別并且甚至預(yù)期由表面上無關(guān)的事件所代表的例外和機(jī)會的能力。CEP可以用來近實時地以高速流數(shù)據(jù)關(guān)聯(lián)、聚集、豐富、和檢測模式。而且,持續(xù)查詢語言(CQL)語句用來處理包括事件的事件流。事件流可能被認(rèn)為是〈tuple, timestamp〉對的序列,其中元組(tuple)是指數(shù)據(jù)部分。流可以具有多個元組并且時間戳(timestamp)可以定義在事件流中元組的次序。Oracle 復(fù)雜事件處理(OCEP)用來處理這樣的事件流。此外,CEP應(yīng)用可以具有多個查詢和視圖,其然后由處理器執(zhí)行。任何真實世界的應(yīng)用可以由數(shù)百個僅僅在像范圍參數(shù)這樣的特定值方面不同的查詢和視圖組成。在這樣的情況下維護(hù)數(shù)百個查詢和視圖可能成為可怕的事情,因為基本查詢或視圖的微小的變化將導(dǎo)致影響數(shù)百個相關(guān)的查詢和視圖。使用參數(shù)化或通配符(wildcard)占位符(placeholder)的形式幫助應(yīng)用開發(fā)者編寫類似的查詢和視圖,其僅僅在小的標(biāo)準(zhǔn)方面不同。在一個實施例中,允許用戶放置通配符占位符,然后其能在運(yùn)行時利用值綁定??梢詫?shù)化的查詢或視圖看作模板,然后其能用于不同的值。這為用戶提供編寫單個CQL語句的能力,該單個CQL語句可以在內(nèi)部生成用于綁定中提供的不同值的多個CQL語句的。例如:SELECT symbol, AVG(price)AS average, NASDAQ AS marketFROM StockTick t RETAIN ALL EVENTSWHERE symbol=0RCLSELECT symbol, AVG(price)AS average, NYSE AS marketFROM StockTick t RETAIN ALL EVENTSWHERE symbol=JPMSELECT symbol, AVG(price)AS average, NYSE AS market
FROM StockTick t RETAIN ALL EVENTSWHERE symbol=WFC應(yīng)當(dāng)注意到以上查詢在項目列表中的恒定值或者在WHERE條件下的恒定值方面不同。如果有數(shù)百個這樣的查詢,則任何商業(yè)用戶可能必須編寫數(shù)百個這樣的查詢和視圖。因此,出于這些和其它原因,在本領(lǐng)域的改進(jìn)是必要的。

發(fā)明內(nèi)容
本發(fā)明的實施例包括利用CEP字符串替換將綁定變量替換為為綁定變量提供的參數(shù)集合,而不做任何種類型檢查等。這不同于常規(guī)的數(shù)據(jù)庫之處在于綁定變量也必須通過類型檢查等。因此,在CEP上下文中的綁定變量提供更靈活的并且因此更強(qiáng)大的解決方案,其允許用戶插入任意的謂詞。因此,在CEP環(huán)境中的綁定變量可以是無類型的。本發(fā)明包括在復(fù)雜事件處理(CEP)中提供參數(shù)化的查詢的方法。該方法包括提供包括一個或多個綁定變量的查詢模板、提供對應(yīng)于一個或多個綁定變量的參數(shù)集合、以及解析查詢模板以確定一個或多個綁定變量的位置。該方法還包括掃描提供的參數(shù)集合以確定哪些參數(shù)集合將被綁定到一個或多個綁定變量、綁定被確定綁定到該參數(shù)集合的一個或多個綁定變量、以及利用對應(yīng)的參數(shù)集合替換綁定的一個或多個綁定變量。該方法還包括建立確定的一個或多個綁定變量的位置的地圖。利用對應(yīng)的參數(shù)集合替換綁定的一個或多個綁定變量包括利用確定的一個或多個綁定變量的位置來將綁定的參數(shù)集合放置在查詢模板內(nèi)。提供對應(yīng)于一個或多個綁定變量的參數(shù)集合或者靜態(tài)或者動態(tài)地執(zhí)行。在進(jìn)一步的實施例中,提供對應(yīng)于一個或多個綁定變量的參數(shù)集合通過利用在查詢模板的部署時的配置文件來靜態(tài)地執(zhí)行,以及提供對應(yīng)于一個或多個綁定變量的參數(shù)集合通過利用模塊管理解決方案來動態(tài)地執(zhí)行。該配置文件包括以下中的一個或多個:應(yīng)用關(guān)聯(lián)、處理器關(guān)聯(lián)、查詢規(guī)則、查詢模板、參數(shù)集合、或綁定。該方法還包括基于包括替換一個或多個綁定變量的參數(shù)集合的查詢模板實例化新查詢、實例化該新查詢、并且將新查詢注入到CEP服務(wù)器。此外,該方法包括基于該新查詢,建立查詢執(zhí)行計劃、將該查詢執(zhí)行計劃作為連續(xù)查詢增加到運(yùn)行時環(huán)境中、并且執(zhí)行連續(xù)查詢。該方法還包括確定對應(yīng)于相同的綁定變量的多個參數(shù)集合,并且實例化對于與相同的綁定變量對應(yīng)的多個參數(shù)集合的每一個的單獨(dú)的新查詢。在另一個實施例中,描述了用于在復(fù)雜事件處理(CEP)中提供參數(shù)化的查詢的系統(tǒng)。該系統(tǒng)包括存儲器和與存儲器耦合的處理器。存儲器在其上存儲有指令集合,其在由處理器執(zhí)行時,使得處理器確定出現(xiàn)在用于處理事件流的參數(shù)化的查詢中的占位符、確定用于占位符的參數(shù)、通過用該參數(shù)替換占位符來從參數(shù)化的查詢生成查詢、生成該查詢;并且處理事件流。系統(tǒng)還包括包括CQL引擎的CEP服務(wù)器。該CQL引擎實例化CEP應(yīng)用。該系統(tǒng)還包括與CEP服務(wù)器通信的觀察器。該觀察器被配置為顯示來自于處理的事件流的結(jié)果信
肩、O在進(jìn)一步的實施例中,描述了計算機(jī)可讀介質(zhì)。計算機(jī)可讀介質(zhì)包括用于提供包括一個或多個綁定變量的查詢模板、提供對應(yīng)于一個或多個綁定變量的參數(shù)集合、以及解析查詢模板以確定一個或多個綁定變量的位置的指令。計算機(jī)可讀介質(zhì)還包括用于掃描提供的參數(shù)集合以確定哪些參數(shù)集合將被綁定到一個或多個綁定變量、綁定被確定綁定到該參數(shù)集合的一個或多個綁定變量、以及利用對應(yīng)的參數(shù)集合替換綁定的一個或多個綁定變量的指令。計算機(jī)可讀介質(zhì)還包括用于確定新的參數(shù)集合被指定用于綁定、識別在指定新的參數(shù)集合之前已經(jīng)使用參數(shù)集合實例化的查詢、刪除在指定新的參數(shù)集合之前已經(jīng)使用參數(shù)集合實例化的查詢、以及利用新的用于運(yùn)行期系統(tǒng)的參數(shù)集合實例化查詢的指令。計算機(jī)可讀介質(zhì)還包括用于將參數(shù)集合轉(zhuǎn)換為字符串、檢查參數(shù)集合的字符串以確定參數(shù)集合的形式、將確定的參數(shù)集合的類型與對應(yīng)的綁定變量的類型進(jìn)行比較、以及響應(yīng)于確定的參數(shù)集合的類型匹配對應(yīng)的綁定變量的類型來驗證參數(shù)集合的指令。對應(yīng)的綁定變量和參數(shù)集合的類型可以包括以下中的一個或多個:整數(shù)(INT)、浮點(diǎn)數(shù)(FLOAT)、長整型(LONG)、大數(shù)字型(BI⑶ECIMAL)、雙精度型(DOUBLE)、和字符串(STRING)。


圖1是根據(jù)本發(fā)明的實施例的事件處理服務(wù)器的方框圖。圖2a_2c是根據(jù)本發(fā)明的實施例的在CEP中用于執(zhí)行參數(shù)化的查詢的流程圖。圖3是根據(jù)本發(fā)明的實施例的在CEP中用于執(zhí)行參數(shù)化的查詢的流程圖。圖4A-4D是根據(jù)本發(fā)明的實施例的在CEP中用于執(zhí)行參數(shù)化的查詢的方框圖。圖5A和5B是根據(jù)本發(fā)明的實施例的在CEP中用于執(zhí)行參數(shù)化的查詢的方框圖。圖6是根據(jù)本發(fā)明的實施例的在CEP中用于執(zhí)行參數(shù)化的查詢的用戶界面。圖7是根據(jù)本發(fā)明的實施例的可以使用的系統(tǒng)環(huán)境的簡化方框圖。圖8是根據(jù)本發(fā)明的實施例的可以使用的計算機(jī)系統(tǒng)的簡化方框圖。
具體實施例方式在下面的描述中,為了解釋的目的,闡述許多細(xì)節(jié)以便提供對本發(fā)明的各種實施例的理解。但是,本領(lǐng)域技術(shù)人員將顯然可知在沒有這些細(xì)節(jié)的情況下可以實踐某些實施例。本發(fā)明的各方面包括為用戶提供編寫在某些特定值方面不同的CEP中的查詢和/或視圖的容易的方式的參數(shù)化方法。例如,上述查詢可以具有可以充當(dāng)模板的單個參數(shù)化的查詢并且隨后可以提供用于那些綁定的可能值,其在內(nèi)部可以生成多個查詢和視圖。在下面的查詢中:SELECT symbol, AVG(price)AS average,:1AS marketFROM StockTick[RANGE5SEC0NDS]WHERE symbol=:2:1和:2充當(dāng)占位符。在部署時或者在運(yùn)行時可以將不同的值綁定到這些占位符。此外,被配置為處理這樣的查詢的、與處理器組件相關(guān)聯(lián)的配置文件可以看起來如下:<nl:config xmlns:nl="http://www:bea.com/iis/wlevs/config/application” xmlns:xsi=,,http://www.w3.0rg/2001/XMLSchema-1nstance',>
〈processor〉
<name>myProcessor</name>
<rales>
〈rule id=nMarketQueryfl><! [CDATAf
SELECT symbol, AVG(price) AS average,:1 AS market FROM SlockTick|RANGE 5 SECONDS |
WHERE symbol =:2 ]]></rule>
</rules>
<bindings>
〈binding id="MarketQuery">
<params id-'nasORCLQucry">NASDAQ, ORCL</params>
<parair]s id-!nyjPMQucryM>NYSEr JPM</params>
<params id-fny WFCQucr\;M>NYSE, WFC</params>
</binding>
</bindings>
〈/processor〉
</nl:config>在上述示例中,MarketQuery CQL查詢包括兩個占位符:一個在SELECT子句中,另一個在WHERE子句中。在此實施例中,在配置文件本身中也包括用于這些占位符的值(或也可以在運(yùn)行時期間提供它們)?!碽inding id= “MarketQuery”〉元素指定在運(yùn)行時將傳遞給MarketQuery的參數(shù)集列表。利用單個〈params〉元素指定每個參數(shù)集。因為在參數(shù)化的查詢中存在兩個占位符,所以每個〈params〉元素指定由逗號分隔的兩個值。在運(yùn)行時,在占位符被替換為對應(yīng)的參數(shù)值之后,之前的參數(shù)化的查詢有效地分解為下列三個查詢:SELECT symbol, AVG(price)AS average, NASDAQ AS marketFROM StockTick t RETAIN ALL EVENTSWHERE symbol=0RCL —查詢名稱將是 MaketQuery_nasORCLQuerySELECT symbol, AVG(price)AS average, NYSE AS marketFROM StockTick t RETAIN ALL EVENTS
WHERE symbol=JPM —查詢名稱將是 MarketQuery_nyJPMQuerySELECT symbol, AVG(price)AS average, NYSE AS marketFROM StockTick t RETAIN ALL EVENTSWHERE symbol=WFC —查詢名稱將是 MarketQuery_nyWFCQuery本發(fā)明的進(jìn)一步的方面包括利用Java MBean API’ s以操作參數(shù)集。在一個實施例中,可以在部署時或者運(yùn)行時從客戶端添加參數(shù)化的查詢和視圖。此外,可以提供基于Java 管理擴(kuò)展(JMX)架構(gòu)的MBean API的以訪問或修改對應(yīng)于參數(shù)化的查詢或視圖的綁定??蛻舳丝梢哉{(diào)用MBean API以便進(jìn)行它。在一個實施例中,可以提供下列MBean API以支持這樣的綁定:處理器 ConfigMBean AP1:bindParameters(String preparedStatementld, String paramsld, StringparamsValue)—添加用于查詢或視圖的參數(shù)或綁定(preparedstatementid是查詢或視圖的id (標(biāo)識符)),paramsld是param或綁定的標(biāo)識符,paramsvalue是綁定的逗號分隔的值。replaceBoundParameters (String preparedStatementld, Stringparamsld, String newParamsValue)—代替用于查詢或視圖的現(xiàn)有參數(shù),其中preparedStatementld 是查詢或視圖的 id, params id 是 param 名稱并且 newparamsvalue 是新的逗號分隔的值。replaceAl IBoundParameters (String preparedStatementld, String []params Ids, String [] newParamValues)—代替用于查詢或視圖的多個參數(shù)。陣列params ids和newParamValues的大小應(yīng)當(dāng)相同即,它們應(yīng)當(dāng)具有一對一的映射。unbindParameters (String preparedStatementld, String paramsld)—刪除或解除查詢或視圖的特定param或綁定。unbindAlIParameters (String preparedStatementld)—刪除或解除對于規(guī)則的
所有綁定。String getBoundParameters (String preparedStatementld, Stringparamld)—獲得用于特定查詢或視圖的參數(shù)值和參數(shù)名。String [] getAlIBoundParameters (String preparedStatementld)—獲得用于查詢或視圖的所有參數(shù)或綁定值。int getNumberOfBoundParameters (String preparedStatementld)—獲得綁定到查詢或視圖的參數(shù)的總數(shù)。處理器運(yùn)彳T時MBeans AP1:Map<String, String>getAlIParamRules ()—返回存在于處理器中的所有參數(shù)化的查詢和視圖的地圖。密鑰是查詢或視圖標(biāo)識符并且值是對應(yīng)的語句。因此,本發(fā)明的實施例允許用戶編寫在部署或者運(yùn)行時能被綁定到不同的綁定的單個參數(shù)化的查詢或視圖模板。用戶可以提供新的綁定,該新的綁定將在內(nèi)部生成新查詢并且然后運(yùn)行它。此查詢和視圖的模板版本提供有效的方式以增加和/或移動僅僅在某些常數(shù)方面不同的查詢。此外,查詢和視圖的這樣的參數(shù)化或模板風(fēng)格提供非常用戶友好的方式來動態(tài)地修改/增加/刪除數(shù)百個查詢。它提供用于編寫CQL查詢的用戶友好的方式,并且在創(chuàng)建許多相似的規(guī)則方面提供使用的便利性并且提供對這樣的規(guī)則的便利的管理。本發(fā)明的進(jìn)一步的方面提供用于確定出現(xiàn)在用于處理事件流的參數(shù)化的查詢中的占位符的技術(shù)。然后可以確定用于占位符的參數(shù)。這可以在部署時被提供(例如,在如上所示的配置文件中指定)或在運(yùn)行時期間被提供。然后可以通過利用參數(shù)取代占位符來從參數(shù)化的查詢生成查詢。如果存在用于占位符的多個參數(shù)集合,則可以從單個參數(shù)化的查詢生成多個查詢。然后可以將由替換生成的查詢提供到被配置為生成用于查詢的可執(zhí)行指令的CQL引擎。然后可以執(zhí)行可執(zhí)行指令來處理事件流?,F(xiàn)在轉(zhuǎn)向圖1,顯示可以合并本發(fā)明的實施例的系統(tǒng)100的簡化方框圖。如在圖1中描述的,系統(tǒng)100包括被配置為處理一個或多個輸入的數(shù)據(jù)或事件流104、106、和108的事件處理服務(wù)器102??梢詮牟煌脑唇邮樟?04、106、和108,所述源包括數(shù)據(jù)庫、文件、消息傳送服務(wù)、各種應(yīng)用、諸如各種類型的傳感器(例如RFID傳感器、溫度傳感器等)的設(shè)備、自動收報機(jī)等。服務(wù)器102可以經(jīng)由基于推的機(jī)制或基于拉的機(jī)制或其他機(jī)制接收流。數(shù)據(jù)或事件流是實時的事件序列。在流中可以接收多個事件。因此能認(rèn)為數(shù)據(jù)流是無界數(shù)據(jù)集的流。在一個實施例中,數(shù)據(jù)流是〈tuple, timestamp〉對的序列。tuple(元組)是指流的數(shù)據(jù)部分。tuple可以被認(rèn)為類似于表中的行。在流中的元組具有圖式(schema)ο流可以包括多個元組。Timestamp (時間戳)定義元組在數(shù)據(jù)流中的次序。在數(shù)據(jù)流中的時間戳可以反映應(yīng)用的時間概念。例如,時間戳可以由接收事件流的系統(tǒng)上的應(yīng)用設(shè)置。接收系統(tǒng)可以對于由應(yīng)用配置的接收給事件加時間戳,例如,如果在用來定義事件流的結(jié)構(gòu)的CREATE STREAM DDL中和用來使用應(yīng)用時間或系統(tǒng)時間作為時間戳的機(jī)制中指定。在其他實施例中,與元組有關(guān)的時間戳可以對應(yīng)于發(fā)送數(shù)據(jù)事件的應(yīng)用的時間。時間戳是流的圖式的一部分。在流中可以存在具有相同的時間戳的一個或多個元組。在流中的元組可以被視為一系列事件并且因此該數(shù)據(jù)流也被稱為事件流。因此能夠認(rèn)為事件流包括一系列事件,每個事件具有關(guān)聯(lián)的時間戳。例如,事件流可以包括一系列來自于傳感器的諸如10°、15°、20°等和相關(guān)聯(lián)的時間戳的溫度讀數(shù)。為了本申請的目的,可交替地使用術(shù)語“元組”和“事件”。系統(tǒng)100包括被配置為處理事件流的事件處理服務(wù)器102。事件處理服務(wù)器102可以接收一個或多個事件流。如圖1所示,事件處理服務(wù)器102接收流104、106、和108。每個事件流包括一個或多個事件。在具體的時間點(diǎn)處由服務(wù)器102以序列接收流中的事件。服務(wù)器102被配置為對輸入的流執(zhí)行各種類型的處理。根據(jù)本發(fā)明的實施例,服務(wù)器102被配置為根據(jù)由服務(wù)器102接收的事件流中的事件檢測輸入的事件流中的模式。在一個實施例中,當(dāng)服務(wù)器102接收事件之時,服務(wù)器102執(zhí)行模式匹配,而不對被分析的流的事件做任何回溯處理??梢岳檬┘佑谳斎氲牧鞯倪B續(xù)查詢的類型執(zhí)行模式匹配。服務(wù)器102也可以對輸入的流執(zhí)行其它類型的處理,諸如對輸入對事件流運(yùn)行其它連續(xù)查詢,和其它操作。事件處理服務(wù)器的例子是來自O(shè)racle 公司的Oracle復(fù)雜事件處理器??商鎿Q地,MATCH_RECOGNIZE也可以用于執(zhí)行模式匹配。在圖1描述的實施例中,服務(wù)器102包括被配置為對于一個或多個事件流執(zhí)行與模式匹配有關(guān)的處理的模式匹配模塊110。如在圖1中描述的,模式匹配模塊110包括模式輸入接口 112、類技術(shù)確定器113、自動發(fā)生器114、以及匹配器116。模式輸入接口 112提供用于接收指定要在事件流中匹配的模式的信息的接口。模式輸入接口 112可以提供允許輸入指定要匹配的一個或多個模式的信息的圖形用戶接口、用于指定要匹配的模式的接口、或一些其它接口??梢杂煞?wù)器102的用戶指定要匹配的模式。也可以從其他源,例如從事件處理服務(wù)器102的其它組件或模塊、或其它系統(tǒng)或應(yīng)用,接收識別要匹配的模式的信息。在一個實施例中,利用正則表達(dá)式指定要被匹配的模式。正則表達(dá)式是表示要被匹配的模式的符號的字符串(也被稱為相關(guān)名稱或相關(guān)變量)。利用一個或多個符號建立正則表達(dá)式并且可以使用一個或多個算子。算子的例子包括但不局限于連接算子(例如,正則表達(dá)式中的符號之間的“AND”算子可以用來表示符號之間的AND關(guān)系),或算子(例如,垂直條‘ I ’在正則表達(dá)式中可以分開指不對于符號的OR條件的符號),一個或多個量詞、分組算子(例如,由括號指示)等。量詞的例子包括意指該量詞與之相關(guān)的符號的零次或更多次出現(xiàn)的星號‘*’、意指該量詞與之相關(guān)的符號的一次或多次出現(xiàn)的加號‘ + ’、意指該量詞與之相關(guān)的符號的零次或一次出現(xiàn)的問號‘? ’、懶惰(reluctant)量詞,等等。在IS0/IECJTCi/SC32 WG3:URC-nnn, ANSI NCITS H2-2006-nnn, July, 2007,Fred Zemke 等的“PatternMatching in Sequence of Rows (12)”中提供并且描述了包括用于正則表達(dá)式的相關(guān)的語法的、可以使用的算子和量詞的例子,其全部內(nèi)容通過引用而被合并于此以用于所有目的。過去,正則表達(dá)式已經(jīng)主要用于查找字符串中的模式。在本發(fā)明的實施例中,正則表達(dá)式的能量用于在由事件處理服務(wù)器102接收的事件流中匹配模式。正則表達(dá)式提供簡單的、簡明的、和靈活的用于指定要被匹配的模式的方式。在圖1描述的實施例中,事件處理服務(wù)器102可以接收指定要在一個或多個事件流中被匹配的正則表達(dá)式的模式信息118。在一個實施例中,可以利用模式匹配模塊110的模式輸入接口 112指定模式??梢岳貌煌恼Z言提供模式信息118。在一個實施例中,可以使用通常用于查詢數(shù)據(jù)庫的諸如SQL之類的編程語言??梢詫U(kuò)展提供到SQL以表達(dá)要對于事件流匹配的模式。例如,模式信息118可以指定SQL查詢,該SQL查詢包括指定要在由事件處理服務(wù)器102接收的一個或多個事件流中被匹配的模式的正則表達(dá)式。Oracle支持在復(fù)雜事件處理(CEP)產(chǎn)品中的CQL語言(連續(xù)的查詢語言)。CQL與具有用于流處理的擴(kuò)展的SQL非常相似。被提出以便擴(kuò)展SQL以經(jīng)由正則表達(dá)式指定模式匹配的模式匹配構(gòu)造(例如,在 IS0/IEC JTCi/SC32WG3:URC-nnn, ANSI NCITS H2-2006_nnn,July, 2007、Fred Zemke 等的 “Pattern Matching in Sequence of Rows (12)” 中描述的構(gòu)造,其全部內(nèi)容通過引用而被合并于此以用于所有目的)已被在CQL中采用,以擴(kuò)展CQL,以指定堆事件流的模式匹配要求。通常,用于查詢模式的模式匹配僅僅出現(xiàn)在單個輸入流上。也可以在多個事件流上執(zhí)行模式匹配,例如利用CQL。在一個實施例中,這可以通過首先執(zhí)行所有相關(guān)的輸入流的UNION (關(guān)聯(lián))來完成,其中在所有相關(guān)的輸入流上進(jìn)行模式匹配,其中結(jié)果定義與中間流對應(yīng)的視圖,并且可以在單個中間流上指定要匹配的模式。然后將模式匹配到包括在該視圖中的全部流。接下來參考圖2A,示出了根據(jù)本發(fā)明的實施例的在CEP中實現(xiàn)參數(shù)化的查詢的方法200。在處理塊205處,提供具有一個或多個綁定變量的查詢模板。提供對應(yīng)于綁定變量的(即,綁定變量將被綁定到的)參數(shù)集合(處理塊210)。在一個實施例中,可以靜態(tài)地(例如,經(jīng)由配置文件,典型地在部署時進(jìn)行)或在運(yùn)行時動態(tài)地(例如,利用JMX或其它的機(jī)制)提供參數(shù)集合。因此,在運(yùn)行期間使用利用JMX的動態(tài)供應(yīng),并且可以使用其來刪除參數(shù)集合、提供新的參數(shù)集合等等。在處理塊215,解析查詢模板以確定綁定變量的位置。在一個實施例中,可以識別綁定變量,例如,通過:1、:2、:3、等等。查詢內(nèi)部的綁定變量的排序不必以1、2、3等等的次序。因此,可以建立確定的綁定變量的位置的地圖(處理塊220)。在處理塊225處,可以掃描所提供的參數(shù)集合列表以確定要被綁定到對應(yīng)的綁定變量的參數(shù)集合,然后可以發(fā)生綁定(處理塊230)。在處理塊235處,可以用參數(shù)集合替換
綁定變量。從圖2A中的點(diǎn)‘A’移動到圖2B中的點(diǎn)‘A’,示出了根據(jù)本發(fā)明的實施例的在CEP中實現(xiàn)參數(shù)化的查詢的方法201。在決策塊240處,確定是否存在用于相同的綁定變量集合
的多個參數(shù)集合。例如:
〈rule id=nMarketQueryn><![CDATA[
SELECT symbol, AVG(price) AS average,:1 AS market FROM StockTick [RANGE 5 SECONDS]
WHERE symbol =:2]]></rule>
</ruIes>
<bindings>
-binding id=,fMarketQuery">
<params id=,,nasORCLQueryM>NASDAQ5
ORCL</params>
<params id=MiiyJP\lQueryM>NYSE, JPM</params>
〈params id=,!nyWFCQiiery!'>NYSE, \VFC</params>這里存在三個參數(shù)集合。(每個用粗體表示)這里,如果:1,: 2,則綁定變量集合此外,如果確定參數(shù)集合的多個集合不對應(yīng)于相同的綁定變量,則利用參數(shù)集合的集合生成單個新查詢(處理塊245)。如果確定為相同的綁定變量提供多個參數(shù)集合,則對于每個參數(shù)實例化單獨(dú)的新查詢(處理塊250)。因此,在處理塊255處,然后把實例化的查詢注入到CEP服務(wù)器(將查詢發(fā)送給CQL引擎)。CQL引擎然后建立查詢執(zhí)行計劃(處理塊260)并且將該查詢作為連續(xù)查詢增加到運(yùn)行時環(huán)境(處理塊265)。最后,在處理塊270處,執(zhí)行實例化的一個查詢或多個查詢。

現(xiàn)在轉(zhuǎn)到圖2C,示出了根據(jù)本發(fā)明的實施例的在CEP中實現(xiàn)參數(shù)化的查詢的方法202。在處理塊275處,可以對于綁定參數(shù)指定新參數(shù)(而不是舊參數(shù))。在這樣的條件下,識別已經(jīng)利用舊參數(shù)實例化的查詢(處理塊280)。因此,從運(yùn)行環(huán)境中刪除利用舊參數(shù)識別的查詢(處理塊285)。在處理塊290處,實例化利用用于運(yùn)行時系統(tǒng)的新的參數(shù)集合的查詢??梢岳孟噜弲?shù)集合進(jìn)行如上所述的處理。例如,如果已經(jīng)創(chuàng)建了綁定變量位置地圖,則可以不需要重復(fù)到此位置的步驟-處理可以在掃描新的參數(shù)集合并且然后執(zhí)行替換之處繼續(xù)。本質(zhì)上,退出查詢被代替為利用新的參數(shù)集合的新的實例化的查詢。此外,可以將參數(shù)集合綁到包括查詢模板的規(guī)則。在一個實施例中,視圖定義(使用例如CQL進(jìn)行)也可以使用綁定變量。在連續(xù)查詢的背景下的參數(shù)化、“參數(shù)化的查詢”或“查詢模板”包括具有至少一個綁定變量的查詢?,F(xiàn)在轉(zhuǎn)到圖3,示出了用于描述根據(jù)本發(fā)明的實施例的CQL和商業(yè)查詢生命周期的方法300。在方塊305a處創(chuàng)建IT角色,其 包括項目列表、參數(shù)集合、和條件305b。此外,在塊305c處,創(chuàng)建IT用戶/商業(yè)用戶分析師合作規(guī)則。在塊310處,參數(shù)化查詢和視圖。例如,可以生成自然語言+0...1參數(shù)化的查詢+0...η參數(shù)化的視圖、和自動視圖/查詢、依賴跟蹤310a。在塊315處,創(chuàng)建用于商業(yè)分析師角色315a的商業(yè)模板。在塊315b處,經(jīng)由超鏈接等實例化新查詢。因此,在塊320處創(chuàng)建商業(yè)查詢。然后,商業(yè)用戶角色將查詢視為單個邏輯操作320a,并且能夠修改CQL查詢和視圖320b,以返回到CQL查詢和視圖305。圖4A包括被永久地綁定到硬編碼的值的示例查詢405。圖4B包括參數(shù)化的查詢410、綁定415、和商業(yè)規(guī)則420,以及圖4C包括模板425、參數(shù)化的視圖430、和參數(shù)化的查詢435。此外,圖4D包括參數(shù)化的視圖和查詢440、模板445、和商業(yè)查詢450。一個使用圖4A-4D中的信息的示例如下:Filterl:(eVentName=EI, path=Pl, statName=countValue)Factl:(具有 eventName=El, path=Pl 的輸入事件的 countValue)Conditionl:Factl〈1000Triggerl:Conditionl在最后30分鐘發(fā)生2次或更多次。另一個示例如下:Filterl: (eVentName=EI, path like ‘*P1*,,statName=count)Factl:(具有 eventName=El 和 paths like的輸入事件的 countValue)Conditionl:Factl〈1000Triggerl: Conditionl在每個不同的路徑上在最后30分鐘發(fā)生2次或更多次。因此,對于事件名E1、路徑P1、和統(tǒng)計量countValue,這些查詢在30分鐘內(nèi)2次或更多次地返回指定的統(tǒng)計量的和,以及指定的統(tǒng)計量的和小于1000的時間?,F(xiàn)在轉(zhuǎn)到圖5A,示出了根據(jù)本發(fā)明的實施例的在CEP中用于實現(xiàn)參數(shù)化的查詢的系統(tǒng)500。在一個實施例中,系統(tǒng)500可以包括CEP服務(wù)器505,CEP服務(wù)器505包括CQL引擎510和配置文件520。此外,CEP服務(wù)器505與觀察器525通信。在一個實施例中,CQL引擎510 —起執(zhí)行所有的查詢。用于CQL引擎510的執(zhí)行計劃包括連接在一起的節(jié)點(diǎn)的集合-所有查詢是執(zhí)行計劃的一部分并且因此是不獨(dú)立的。因此,CEP字符串替換用來用為綁定變量提供的參數(shù)集合代替綁定變量,而不做任何種類型的檢查等等。這不同于常規(guī)的數(shù)據(jù)庫,其中綁定變量也必須通過類型檢查等等。因此,在CEP上下文中的綁定變量提供更靈活的和從而更強(qiáng)大的解決方案,并且允許用戶插入任意謂語。因此,在CEP環(huán)境中的綁定變量可以是無類型的。CQL引擎510被設(shè)置為實現(xiàn)多個CEP應(yīng)用515a、515b、至515η。例如,可以編寫多個CEP應(yīng)用,每個進(jìn)行不同的處理、并且它們?nèi)磕軌虮徊渴鹪谙嗤腃EP服務(wù)器505上。CEP服務(wù)器505然后包括CQL引擎510并且可以具有多個部署的CEP應(yīng)用(515a、515b、至515η)。觀察器525是商業(yè)用戶可以通過其提供參數(shù)集合的接口。而且,配置文件520與應(yīng)用內(nèi)的處理器有關(guān)。可以在任何時間、在部署時、在部署之前、或在部署之后創(chuàng)建配置文件520。然后,當(dāng)CEP應(yīng)用(515a、515b、或515η)在運(yùn)行時間環(huán)境中時,它可以具有識別查詢模板(即,具有綁定變量的查詢)和要替換綁定變量的參數(shù)集合的配置文件520。圖5Β示出了配置文件520的一個實施例。配置文件520可以包括文件與之關(guān)聯(lián)的應(yīng)用的識別520a、處理器的識別520b、規(guī)則的識別520c、查詢模板520d、參數(shù)集合的識別520e、和綁定520f。可以使用配置文件的其他實施例。接下來參考圖6,顯示在CEP中用于參數(shù)化的查詢的用戶界面的實施例600。這樣的用戶界面的優(yōu)點(diǎn)包括幫助改善需要以提供簡單的使用。大多數(shù)商業(yè)用戶不想編寫查詢。例如,CQL對非程序員來說是難以理解的,因此在CEP情況下,查詢將由IT部門的某些人在理解商業(yè)用戶的需要之后設(shè)計,并且該查詢可以包括綁定變量。然后查詢以易讀的格式呈獻(xiàn)給商業(yè)用戶(例如,以商業(yè)用戶容易理解的查詢的英文版本)。該英文版本可以包括在運(yùn)行時綁定到實際值的綁定參數(shù)集合(其可以經(jīng)由URL鏈接顯示)。在運(yùn)行時,利用提供的將要替換綁定變量的參數(shù)值實例化新查詢,并且然后將該實例化的查詢注入到用于執(zhí)行的CEP系統(tǒng)。這對用戶提供使用的便利。商業(yè)用戶不必關(guān)注低層CQL。圖7是示出了依照本發(fā)明的實施例的可以使用的系統(tǒng)環(huán)境700的組件的簡化方塊圖。如圖所示,系統(tǒng)環(huán)境700包括一個或多個客戶端計算設(shè)備702、704、706、708,其被配置為操作諸如網(wǎng)絡(luò)瀏覽器、專有客戶端(例如,Oracle形式)等的客戶端應(yīng)用。在各個實施例中,客戶端計算設(shè)備702、704、706、和708可以與事件處理系統(tǒng)712交互??蛻舳擞嬎阍O(shè)備702、704、706、708可以是通用的個人計算機(jī)(包括,例如,運(yùn)行各種版本的Microsoft Windows和/或Apple Macintosh操作系統(tǒng)的個人計算機(jī)和/或膝上型計算機(jī))、蜂窩電話機(jī)或PDA (運(yùn)行諸如Microsoft Windows Mobile之類的軟件并且能夠進(jìn)行互聯(lián)網(wǎng)、電子郵件、SMS、Blackberry、或其他的通信協(xié)議)、和/或運(yùn)行任何各種商業(yè)可用的像UNIX或UNIX的操作系統(tǒng)的工作站計算機(jī)(包括但不限于GNU/Linux操作系統(tǒng)的種類)。可替換地,客戶端計算設(shè)備702、704、706、和708可以是任何其它電子設(shè)備,諸如薄的客戶端計算機(jī)、能夠互聯(lián)網(wǎng)的游戲系統(tǒng)、和/或個人消息設(shè)備、能夠通過網(wǎng)絡(luò)(例如,下面描述的網(wǎng)絡(luò)710)進(jìn)行通信。盡管示出了具有四個客戶端計算設(shè)備的示范性的系統(tǒng)環(huán)境700,但是可以支持任何數(shù)目的客戶端計算設(shè)備。諸如具有傳感器的設(shè)備之類的其它設(shè)備等等可以與系統(tǒng)712交互。系統(tǒng)環(huán)境700可以包括網(wǎng)絡(luò)710。網(wǎng)絡(luò)710可以是任何類型的為本領(lǐng)域技術(shù)人員所熟知的網(wǎng)絡(luò),其可以支持利用各種商業(yè)可用的協(xié)議中的任何一個的數(shù)據(jù)通信,所述協(xié)議包括但不限于TCP/IP、SNA、IPX、AppleTalk、等等。僅僅通過舉例方式,網(wǎng)絡(luò)710可以是局域網(wǎng)(LAN),諸如以太網(wǎng)、令牌環(huán)網(wǎng)和/或類似的網(wǎng);廣域網(wǎng);虛擬網(wǎng)絡(luò),包括但不限于虛擬專用網(wǎng)絡(luò)(VPN);互聯(lián)網(wǎng);內(nèi)部網(wǎng);外部網(wǎng);公用交換電話網(wǎng)(PSTN);紅外線網(wǎng)絡(luò);無線網(wǎng)絡(luò)(例如,在IEEE802.11協(xié)議套、在本領(lǐng)域中已知的藍(lán)牙協(xié)議、和/或任何其它無線協(xié)議下操作的網(wǎng)絡(luò));和/或這些和/或其它網(wǎng)絡(luò)的任何組合。
系統(tǒng)712可以包括一個或多個可以是通用計算機(jī)、專用服務(wù)器計算機(jī)(例如,包括PC服務(wù)器、UNIX服務(wù)器、中范圍服務(wù)器、大型計算機(jī)、安裝在機(jī)架上的服務(wù)器等等)、服務(wù)器田、服務(wù)器群集、或任何其它合適的配置和/或組合的服務(wù)器計算機(jī)。在各個實施例中,系統(tǒng)712可以被適配為運(yùn)行在本申請中描述的一個或多個服務(wù)或軟件應(yīng)用。系統(tǒng)712可以運(yùn)行包括上述討論中的任何一個的操作系統(tǒng),以及任何市場上可買到的服務(wù)器操作系統(tǒng)。系統(tǒng)712也可以運(yùn)行各種附加的服務(wù)器應(yīng)用和/或中層應(yīng)用中的任何一個,包括HTTP服務(wù)器、FTP服務(wù)器、CGI服務(wù)器、Java服務(wù)器、數(shù)據(jù)庫服務(wù)器等等。示范性數(shù)據(jù)庫服務(wù)器包括但不限于從Oracle、微軟、Sybase、IBM等等可買到的那些數(shù)據(jù)庫服務(wù)器。系統(tǒng)環(huán)境700也可以包括一個或多個數(shù)據(jù)庫714和716。數(shù)據(jù)庫714和716可以存在于各種位置。舉例來說,一個或多個數(shù)據(jù)庫714和716可以駐留于系統(tǒng)712的本地存儲介質(zhì)上(和/或駐留在系統(tǒng)712中)??商鎿Q地,數(shù)據(jù)庫714和716可以遠(yuǎn)離系統(tǒng)712,并且經(jīng)由基于網(wǎng)絡(luò)的或?qū)S眠B接與系統(tǒng)712通信。在一個實施例集合中,數(shù)據(jù)庫714和716可以駐留在本領(lǐng)域技術(shù)人員所熟知的存儲區(qū)域網(wǎng)(SAN)中。同樣地,可以根據(jù)情況將任何用于執(zhí)行歸因于系統(tǒng)712的功能的必需文件本地地和/或遠(yuǎn)離地存儲在系統(tǒng)712上。在一個實施例集合中,數(shù)據(jù)庫714和716可以包括關(guān)系數(shù)據(jù)庫,諸如OraclelOg和llg,其被適配為響應(yīng)于SQL格式的命令要求存儲、更新和檢索數(shù)據(jù)。圖8是依照本發(fā)明的實施例可以使用的計算機(jī)系統(tǒng)800的簡化塊圖。例如,在圖1中系統(tǒng)800可以用來實現(xiàn)事件處理服務(wù)器102。顯示計算機(jī)系統(tǒng)800包括可以經(jīng)由總線824電子地耦接的硬件元件。該硬件元件可以包括一個或多個中央處理器(CPU) 802、一個或多個輸入設(shè)備804 (例如,鼠標(biāo)、鍵盤、等等)和一個或多個輸出設(shè)備806 (例如、顯示設(shè)備、打印機(jī)、等等)。計算機(jī)系統(tǒng)800也可以包括一個或多個存儲設(shè)備808。舉例來說,存儲設(shè)備808可以包括諸如磁盤驅(qū)動器、光存儲設(shè)備之類的設(shè)備,和諸如隨機(jī)存取存儲器(RAM)和/或只讀存儲器(ROM)之類的固態(tài)存儲設(shè)備,其可以是可編程的、可閃速更新的等等。計算機(jī)系統(tǒng)800另外可以包括計算機(jī)可讀存儲介質(zhì)閱讀器812、通信子系統(tǒng)814(例如,調(diào)制解調(diào)器、網(wǎng)卡(無線或有線的)、紅外線通信裝置等等)和可以包括如上描述的RAM和ROM設(shè)備的工作存儲器818。在某些實施例中,計算機(jī)系統(tǒng)800也可以包括處理加速單元816,其可以包括數(shù)字信號處理器(DSP)、專用的處理器等。計算機(jī)可讀存儲介質(zhì)閱讀器812此外可以被連接到計算機(jī)可讀存儲介質(zhì)810,一起(并且可選地,與存儲設(shè)備808結(jié)合)包括地表示遠(yuǎn)離的、本地的、固定的、和/或可移除的存儲設(shè)備加用于暫時和/或更永久地包含計算機(jī)可讀信息的存儲介質(zhì)。通信子系統(tǒng)814可以準(zhǔn)許與網(wǎng)絡(luò)710和/或任何其他的如上參考系統(tǒng)環(huán)境700所述的計算機(jī)交換數(shù)據(jù)。計算機(jī)系統(tǒng)800也可以包括顯示為當(dāng)前位于工作存儲器818內(nèi)的軟件元件,包括操作系統(tǒng)820和/或諸如應(yīng)用(其可以是客戶端應(yīng)用、瀏覽器、中層應(yīng)用、RDBMS、等等)之類的其他代碼822。在一個示范實施例中,工作存儲器818可以包括可執(zhí)行的代碼和被用來處理事件并且執(zhí)行如上所述的數(shù)據(jù)盒有關(guān)的處理的相關(guān)數(shù)據(jù)結(jié)構(gòu)(諸如緩存)。應(yīng)該理解計算機(jī)系統(tǒng)800的替換實施例可以具有與上述的許多偏離。例如,在硬件、軟件(包括可移植軟件,諸如小程序之類)或兩者中也可能使用定制的硬件和/或可能執(zhí)行特定的元件。此外,可以采用與諸如網(wǎng)絡(luò)輸入/輸出設(shè)備之類的其他的計算機(jī)設(shè)備的連接。
用于包含代碼或部分代碼的存儲介質(zhì)和計算機(jī)可讀介質(zhì)可以包括任何適當(dāng)?shù)脑诒绢I(lǐng)域已知或使用的介質(zhì),包括存儲介質(zhì)和傳播介質(zhì),諸如但不限于在任何用于存儲和/或信息傳輸?shù)姆椒ɑ蚣夹g(shù)中實現(xiàn)的易失性和非易失性、可移動的和不可移動的介質(zhì),諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他的數(shù)據(jù),包括RAM、R0M、EEPR0M、閃速存儲器或其他的存儲技術(shù),CD-ROM、數(shù)字可視化盤(DVD)或其他的光存儲器、磁盒、磁帶、磁盤存儲器或其他的磁存儲器,或任何其他可用于存儲或發(fā)送所期望的信息并且可以由計算機(jī)訪問的介質(zhì)。盡管已經(jīng)描述了本發(fā)明的具體的實施例,但是各種修改、變更、可替換結(jié)構(gòu)、和等效物也涵蓋在本發(fā)明范的范圍內(nèi)。本發(fā)明的實施例不局限于某一具體的數(shù)據(jù)處理環(huán)境內(nèi)的操作,但是可以在多個數(shù)據(jù)處理環(huán)境內(nèi)自由地操作。另外,盡管已經(jīng)利用具體的一系列的處理和步驟描述了本發(fā)明的實施例,但是本領(lǐng)域設(shè)計人員來說應(yīng)該清楚,本發(fā)明的范圍不局限于所描述的系列的處理和步驟。此外,雖然已經(jīng)利用具體的硬件和軟件的組合描述了本發(fā)明的實施例,但是應(yīng)該承認(rèn)其他的硬件和軟件的組合也在本發(fā)明的范圍內(nèi)。可以僅僅在硬件中、或僅僅在軟件中、或利用它們的組合執(zhí)行本發(fā)明的實施例。因此,以例示而不是限制的意義上考慮說明書和附圖。然而,顯然在不脫離在權(quán)利要求闡述的寬泛的精神和范圍的情況下,可以做出增加、替換、刪除、及其他修改和變化。
權(quán)利要求
1.一種在復(fù)雜事件處理CEP中提供參數(shù)化的查詢的方法,該方法包括: 提供包括一個或多個綁定變量的查詢模板; 提供與所述一個或多個綁定變量對應(yīng)的參數(shù)集合; 解析該查詢模板以確定所述一個或多個綁定變量的位置; 掃描提供的參數(shù)集合以確定所述參數(shù)集合中的哪些將被綁定到所述一個或多個綁定變量; 綁定被確定綁定到所述參數(shù)集合的所述一個或多個綁定變量;以及 用對應(yīng)的參數(shù)集合替換所述綁定的一個或多個綁定變量。
2.如權(quán)利要求1中所述的在CEP中提供參數(shù)化的查詢的方法,還包括建立確定的一個或多個綁定變量的位置的地圖。
3.如權(quán)利要求2中所述的在CEP中提供參數(shù)化的查詢的方法,其中用對應(yīng)的參數(shù)集合替換所述一個或多個綁定變量還包括:利用確定的一個或多個綁定變量的位置的地圖將綁定的參數(shù)集合放置在查詢模板內(nèi)。
4.如權(quán)利要求1中所述的在CEP中提供參數(shù)化的查詢的方法,其中提供與一個或多個綁定變量對應(yīng)的參數(shù)集合是靜態(tài)地或者動態(tài)地執(zhí)行的。
5.如權(quán)利要求4中所述的在CEP中提供參數(shù)化的查詢的方法,其中提供與一個或多個綁定變量對應(yīng)的參數(shù)集合通過使用在查詢模板的部署時的配置文件來靜態(tài)地執(zhí)行的。
6.如權(quán)利要求4中所述的在CEP中提供參數(shù)化的查詢的方法,其中提供與一個或多個綁定變量對應(yīng)的參數(shù)集合是通過利用模塊管理解決方案來動態(tài)地執(zhí)行的。
7.如權(quán)利要求5中所述的在CEP中提供參數(shù)化的查詢的方法,其中所述配置文件包括以下中的一個或多個:應(yīng)用關(guān)聯(lián)、處理器關(guān)聯(lián)、查詢規(guī)則、查詢模板、參數(shù)集合、或綁定。
8.如權(quán)利要求1中所述的在CEP中提供參數(shù)化的查詢的方法,還包括:基于包括替換所述一個或多個綁定變量的參數(shù)集合的查詢模板來實例化新的查詢。
9.如在權(quán)利要求8中所述的在CEP中提供參數(shù)化的查詢的方法,還包括: 實例化所述新的查詢;以及 將所述新的查詢注入到CEP服務(wù)器中。
10.如在權(quán)利要求9中所述的在CEP中提供參數(shù)化的查詢的方法,還包括: 基于所述新的查詢,建立查詢執(zhí)行計劃; 將查詢執(zhí)行計劃作為連續(xù)查詢增加到運(yùn)行時環(huán)境;以及 執(zhí)行該連續(xù)查詢。
11.如在權(quán)利要求1中所述的在CEP中提供參數(shù)化的查詢的方法,還包括: 確定多個參數(shù)集合對應(yīng)于相同的綁定變量;以及 對于對應(yīng)于相同的綁定變量的所述多個參數(shù)集合的每一個實例化單獨(dú)的新的查詢。
12.用于在復(fù)雜事件處理(CEP)中提供參數(shù)化的查詢的系統(tǒng),該系統(tǒng)包括: 存儲器;以及 與存儲器耦接的處理器,其中存儲器在其上存儲有指令集,所述指令集在被處理器執(zhí)行時使得處理器: 確定出現(xiàn)在用于處理事件流的參數(shù)化的查詢中的占位符; 確定用于該占位符的參數(shù);以及通過用該參數(shù)替換該占位符來由該參數(shù)化的查詢生成查詢。
13.如權(quán)利要求12中所述的用于在CEP中提供參數(shù)化的查詢的系統(tǒng),其中當(dāng)所述指令集進(jìn)一步被處理器執(zhí)行時使得處理器: 生成該查詢;以及 處理該事件流。
14.如在權(quán)利要求13 中所述的用于在CEP中提供參數(shù)化的查詢的系統(tǒng),還包括: 包括CQL引擎的CEP服務(wù)器,其中CQL引擎實例化多個CEP應(yīng)用;以及 與CEP服務(wù)器通信的觀察器,其中該觀察器被配置為顯示來自于處理的事件流的結(jié)果信息。
15.一種在其上存儲有指令集的計算機(jī)可讀介質(zhì),所述指令集在被計算機(jī)執(zhí)行時使得處理器: 提供包括一個或多個綁定變量的查詢模板; 提供與所述一個或多個綁定變量對應(yīng)的參數(shù)集合; 解析該查詢模板以確定所述一個或多個綁定變量的位置; 掃描提供的參數(shù)集合以確定所述參數(shù)集合中的哪些將被綁定到所述一個或多個綁定變量; 綁定被確定綁定到所述參數(shù)集合的所述一個或多個綁定變量;以及 用對應(yīng)的參數(shù)集合替換所述綁定的一個或多個綁定變量。
16.如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),其中當(dāng)所述指令集進(jìn)一步被計算機(jī)執(zhí)行時使得計算機(jī)確定新的參數(shù)集合被指定用于綁定。
17.如權(quán)利要求16所述的計算機(jī)可讀介質(zhì),其中當(dāng)所述指令集進(jìn)一步被計算機(jī)執(zhí)行時使得計算機(jī): 識別在被指定新的參數(shù)集合之前已經(jīng)使用參數(shù)集合實例化的查詢;以及 刪除在被指定新的參數(shù)集合之前已經(jīng)使用參數(shù)集合實例化的查詢。
18.如權(quán)利要求17所述的計算機(jī)可讀介質(zhì),其中當(dāng)所述指令集進(jìn)一步被計算機(jī)執(zhí)行時使得計算機(jī)使用用于運(yùn)行時系統(tǒng)的新的參數(shù)集合實例化查詢。
19.如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),其中當(dāng)所述指令集進(jìn)一步被計算機(jī)執(zhí)行時使得計算機(jī): 將參數(shù)集合轉(zhuǎn)換成字符串; 檢查參數(shù)集合的字符串以確定參數(shù)集合的形式; 將確定的參數(shù)集合的類型與對應(yīng)的綁定變量的類型進(jìn)行比較;以及 響應(yīng)于確定的參數(shù)集合的類型匹配對應(yīng)的綁定變量的類型,驗證該參數(shù)集合。
20.如權(quán)利要求19所述的計算機(jī)可讀介質(zhì),其中對應(yīng)的綁定變量和參數(shù)集合的類型包括以下中的一個或多個:整數(shù)型、浮點(diǎn)數(shù)、長整型、大數(shù)字型、雙精度型、和字符串型。
全文摘要
本發(fā)明包括一種在復(fù)雜事件處理CEP中提供參數(shù)化的查詢的方法。該方法包括提供包括一個或多個綁定變量的查詢模板;提供與所述一個或多個綁定變量對應(yīng)的參數(shù)集合;解析該查詢模板以確定所述一個或多個綁定變量的位置;掃描提供的參數(shù)集合以確定所述參數(shù)集合中的那些將被綁定到所述一個或多個綁定變量;綁定被確定綁定到所述參數(shù)集合的所述一個或多個綁定變量;以及用對應(yīng)的參數(shù)集合替換所述綁定的一個或多個綁定變量。該方法還包括將參數(shù)化的查詢的所有信息注入到系統(tǒng)中,并且一個模板/參數(shù)化的查詢被配置為全部運(yùn)行它們。
文檔編號G06F17/30GK103189866SQ201180053021
公開日2013年7月3日 申請日期2011年9月16日 優(yōu)先權(quán)日2011年9月16日
發(fā)明者P·杰恩, V·舒克拉, A·斯里尼瓦桑, A·德卡斯托阿爾維, E·希奧 申請人:甲骨文國際公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
平湖市| 霍邱县| 福鼎市| 乌兰察布市| 鸡东县| 沧源| 平果县| 民县| 沭阳县| 和静县| 建德市| 南汇区| 加查县| 泰州市| 蓝山县| 大荔县| 星子县| 辉县市| 车致| 陵水| 哈尔滨市| 唐海县| 旬邑县| 竹山县| 西林县| 盐池县| 博乐市| 谢通门县| 成安县| 吴川市| 彭州市| 麻城市| 奇台县| 清涧县| 夏邑县| 平顺县| 黎川县| 上思县| 任丘市| 丹寨县| 黔东|