基于圖的計算中的數(shù)據(jù)日志記錄的制作方法
【專利說明】
[0001] 本申請是申請日為2009年6月30日、申請?zhí)枮?00980133372. 9(國際申請?zhí)枮?PCT/US2009/049299)、發(fā)明名稱為"基于圖的計算中的數(shù)據(jù)日志記錄"的發(fā)明專利申請的分 案申請。
[0002] 相關(guān)申請的交叉引用
[0003] 本申請要求于2008年6月30日提交的美國臨時申請No. 61/077, 022的優(yōu)先權(quán), 通過引用的方式將其合并于此。
技術(shù)領(lǐng)域
[0004] 本說明書一般涉及基于圖的計算中的數(shù)據(jù)日志記錄(logging)。
【背景技術(shù)】
[0005] 復(fù)雜計算經(jīng)常能夠通過有向圖被表達為數(shù)據(jù)流,有向圖具有與圖的頂點關(guān) 聯(lián)的計算的組件以及與圖的連接(弧、邊)相應(yīng)的組件之間的數(shù)據(jù)流。在美國專利 5,966,072("ExecutingComputationsExpressedAsGraphs")中描述了實現(xiàn)這樣的基 于圖的計算的系統(tǒng)。在一些情況下,以可供人讀的形式--被稱為"businessrules(商務(wù) 規(guī)則)" 一一描述與頂點關(guān)聯(lián)的計算。
【發(fā)明內(nèi)容】
[0006] 一般說來,在一個方面,提供一種方法,包括:接收針對一組數(shù)據(jù)處理組件的至少 一個規(guī)則說明書,該規(guī)則說明書定義每一個都與一個或多個規(guī)則例關(guān)聯(lián)的規(guī)則,所述規(guī)則 例指定用于確定取決于輸入數(shù)據(jù)的一個或多個輸出值的準則;基于接收到的規(guī)則說明書生 成針對至少一個數(shù)據(jù)處理組件的變換,包括提供用于配置與所生成的變換關(guān)聯(lián)的日志的特 征的接口;以及使用所生成的變換來變換至少一個數(shù)據(jù)流,所述至少一個數(shù)據(jù)流表示數(shù)據(jù) 從一個數(shù)據(jù)處理組件到另一個數(shù)據(jù)處理組件的流動,包括:在運行時跟蹤數(shù)據(jù)處理組件的 運行,根據(jù)所配置的日志特征,基于所跟蹤的運行生成日志信息,以及存儲或者輸出所生成 的日志信息。
[0007] 多個方面可以包括一個或多個下列特征:
[0008] 配置日志的特征包括選擇至少一個事件,將針對該至少一個事件而生成日志信 息。
[0009] 根據(jù)與接收到的規(guī)則說明書關(guān)聯(lián)的規(guī)則,所述至少一個事件與數(shù)據(jù)流中的變換記 錄關(guān)聯(lián)。
[0010] 所述至少一個事件包括識別將被變換的記錄中的錯誤。
[0011] 所述至少一個事件包括對于給定記錄滿足規(guī)則例的條件。。
[0012] 對于給定記錄滿足規(guī)則例的條件包括基于給定記錄中的值滿足邏輯表達式。
[0013] 對于規(guī)則例滿足規(guī)則例的條件包括將記錄中的值與關(guān)聯(lián)于所述規(guī)則例的值相比 較。
[0014] 生成日志信息包括:生成分別包括規(guī)則集的細節(jié)的一個或多個圖例日志消息,該 規(guī)則集包含由接收到的規(guī)則說明書定義的規(guī)則,以及生成多個跟蹤日志消息,其中,每個跟 蹤日志消息與圖例記錄關(guān)聯(lián)并且根據(jù)與接收到的規(guī)則說明書關(guān)聯(lián)的規(guī)則描述與數(shù)據(jù)流中 的變換記錄關(guān)聯(lián)的至少一個事件。
[0015] 描述事件的跟蹤日志消息使用圖例記錄中的索引描述數(shù)據(jù)處理組件的至少一個 輸入或輸出。
[0016] 生成一個或多個圖例消息包括每次運行基于圖的計算生成一個圖例消息。
[0017] 使用生成的變換的數(shù)據(jù)處理組件根據(jù)與接收到的規(guī)則說明書關(guān)聯(lián)的第一規(guī)則對 數(shù)據(jù)流中的輸入記錄進行變換。
[0018] 基于所跟蹤的運行生成日志信息包括針對指定準則被滿足的、第一規(guī)則的各個規(guī) 則例生成日志消息。
[0019] 基于所跟蹤的運行生成日志信息包括針對由所述數(shù)據(jù)處理組件使用所生成的變 換生成的變換生成的經(jīng)變換的記錄中的每個值生成日志消息。
[0020] 存儲或者輸出生成的日志信息包括從所述一個或多個數(shù)據(jù)處理組件的日志端口 輸出日志消息。
[0021] 存儲或者輸出生成的日志信息還包括從數(shù)據(jù)處理組件中的日志端口接收日志消 息的數(shù)據(jù)流并且存儲至少部分地源自所述日志消息的日志信息。
[0022] 該方法還包括:過濾接收到的日志消息的數(shù)據(jù)流并且存儲源自日志消息的子集的 日志信息。
[0023] 存儲或者輸出所生成的日志信息還包括:從指示指定準則被滿足的、被觸發(fā)的規(guī) 則例的數(shù)據(jù)處理組件中的日志端口接收日志消息的數(shù)據(jù)流,檢查所述日志消息以確定為每 個規(guī)則的每個規(guī)則例提供至少一個日志消息的經(jīng)縮減的輸入記錄集,所述規(guī)則通過由全部 輸入記錄觸發(fā)的規(guī)則說明書所定義,以及存儲經(jīng)縮減的輸入記錄集。
[0024] 一般說來,在另一方面,提供一種計算機系統(tǒng),包括:存儲系統(tǒng),存儲針對一組數(shù)據(jù) 處理組件的至少一個規(guī)則說明書,該規(guī)則說明書定義每一個都與一個或多個規(guī)則例關(guān)聯(lián)的 規(guī)則,所述規(guī)則例指定用于確定取決于輸入數(shù)據(jù)的一個或多個輸出值的準則;生成器,被配 置為基于接收到的規(guī)則說明書生成針對基于圖的計算中的至少一個數(shù)據(jù)處理組件的變換, 包括提供用于配置與所生成的變換關(guān)聯(lián)的日志的特征的接口;以及計算系統(tǒng),被配置為使 用所生成的變換來變換至少一個數(shù)據(jù)流,所述至少一個數(shù)據(jù)流表示數(shù)據(jù)從一個數(shù)據(jù)處理組 件到另一個數(shù)據(jù)處理組件的流動,包括:在運行時跟蹤所述計算系統(tǒng)中的數(shù)據(jù)處理組件的 運行,根據(jù)所配置的日志特征,基于所跟蹤的運行生成日志信息,以及存儲或者輸出所生成 的日志信息。
[0025] -般說來,在另一方面,提供一種計算機程序,存儲在計算機可讀介質(zhì)上,該計算 機程序包括導(dǎo)致計算機系統(tǒng)執(zhí)行以下步驟的指令:接收針對基于圖的計算的至少一個規(guī)則 說明書,該基于圖的計算具有通過鏈接表示數(shù)據(jù)流的元素而連接的數(shù)據(jù)處理組件,該規(guī)則 說明書定義分別與一個或多個規(guī)則例關(guān)聯(lián)的規(guī)則,所述規(guī)則例指定用于確定取決于輸入數(shù) 據(jù)的一個或多個輸出值的準則;基于接收到的規(guī)則說明書生成針對基于圖的計算中的至少 一個數(shù)據(jù)處理組件的變換,包括提供用于配置與所生成的變換關(guān)聯(lián)的日志的特征的接口; 以及使用所生成的變換來變換至少一個數(shù)據(jù)流,包括:在運行時跟蹤基于圖的計算中的數(shù) 據(jù)處理組件的運行,根據(jù)所配置的日志特征,基于所跟蹤的運行生成日志信息,以及存儲或 者輸出所生成的日志信息。
[0026] -般說來,在另一方面,提供一種計算機系統(tǒng),包括:用于接收針對一組數(shù)據(jù)處理 組件的至少一個規(guī)則說明書的裝置,該規(guī)則說明書定義每一個都與一個或多個規(guī)則例關(guān)聯(lián) 的規(guī)則,所述規(guī)則例指定用于確定取決于輸入數(shù)據(jù)的一個或多個輸出值的準則;用于基于 接收到的規(guī)則說明書生成針對基于圖的計算中的至少一個數(shù)據(jù)處理組件的變換的裝置,包 括提供用于配置與所生成的變換關(guān)聯(lián)的日志的特征的接口;以及用于使用所生成的變換來 變換至少一個數(shù)據(jù)流的裝置,所述至少一個數(shù)據(jù)流表示數(shù)據(jù)從一個數(shù)據(jù)處理組件到另一個 數(shù)據(jù)處理組件的流動,包括:在運行時跟蹤數(shù)據(jù)處理組件的運行,根據(jù)所配置的日志特征, 基于所跟蹤的運行生成日志信息,以及存儲或者輸出所生成的日志信息。
[0027] 在附圖以及下面的描述中給出本發(fā)明的一個或多個實施例的細節(jié)。本發(fā)明的其它 特征、目的和優(yōu)點將從說明書和附圖以及權(quán)利要求中變得明顯。
【附圖說明】
[0028] 圖IA示出在基于圖的計算環(huán)境中將輸入數(shù)據(jù)變換為輸出數(shù)據(jù)。
[0029] 圖IB示出在基于圖的計算中的圖的一個例子。
[0030] 圖IC不出利用日志記錄信息的變換生成的框圖。
[0031] 圖2A不出基于電子表格的規(guī)則條目(entry)的一個例子。
[0032] 圖2B示出單個規(guī)則的一個例子。
[0033] 圖3示出在基于圖的計算環(huán)境中將數(shù)據(jù)記入日志的部分操作的流程圖。
[0034] 圖4是在基于圖的計算環(huán)境中的日志記錄結(jié)構(gòu)的圖形用戶接口的圖示。
【具體實施方式】
[0035] 用于數(shù)據(jù)日志記錄和審核機制的示范性上下文(context)包括基于圖的計算范 例(paradigm),其將與基于圖的計算關(guān)聯(lián)的元數(shù)據(jù)存儲在基于圖的計算系統(tǒng)中。在此場 景中,每個計算機程序使用計算圖實現(xiàn),也稱作數(shù)據(jù)流圖,或者簡稱為圖。一個圖包括表示 數(shù)據(jù)處理組件的一個或多個節(jié)點或者頂點,它們由表示組件之間數(shù)據(jù)的流動的有向邊聯(lián)接 (join)。圖能夠在并行處理環(huán)境下運行。系統(tǒng)跟蹤圖的開發(fā)過程中的變化,執(zhí)行統(tǒng)計分析 和相關(guān)性分析,并且管理與圖的開發(fā)有關(guān)的元數(shù)據(jù)。與圖有關(guān)的元數(shù)據(jù)的存儲使得數(shù)據(jù)影 響分析能夠發(fā)生,給用戶視覺感知:數(shù)據(jù)如何隨其在圖中的行進而改變,以及那些變化對其 它圖的影響。另外,系統(tǒng)提供的配置/變化管理能夠當存在代碼變化時存儲圖的多個版本, 由此確保最新的代碼和數(shù)據(jù)可用。
[0036] 商務(wù)規(guī)則,比如元數(shù)據(jù)的子集,存儲在系統(tǒng)中。例如,在美國申請 No. 11/733,434一一通過引用的方式將其合并于此一一中描述了各個方面的商務(wù)規(guī)則。每 個商務(wù)規(guī)則都能夠存儲在單獨的對象中。商務(wù)規(guī)則能夠表達為用于將數(shù)據(jù)從一種格式轉(zhuǎn)換 到另一種格式、進行有關(guān)數(shù)據(jù)的判定或者基于一組輸入數(shù)據(jù)生成新數(shù)據(jù)的一組準則。例如, 在圖IA中,航班預(yù)訂系統(tǒng)中的記錄102包括表示乘客的姓名104、今年已經(jīng)飛行了多少英里 106、他的票的等級108以及他所坐的行110的字段的值。商務(wù)規(guī)則表示這樣的乘客應(yīng)該放 進登機組1。商務(wù)規(guī)則一般容易為人理解,即,"頭等艙乘客在組1",但是在它可以用于操作 數(shù)據(jù)以前可能需要被翻譯成計算機能夠理解的語言。
[0037] 為了在基于圖的計算環(huán)境中實現(xiàn)商務(wù)規(guī)則,生成變換(transform) 112,其從一個 或多個數(shù)據(jù)源一一例如輸入數(shù)據(jù)集100-一接收諸如記錄102這樣的輸入記錄,并且提供 輸出記錄,例如,記錄114,表示對于輸出數(shù)據(jù)集120來說乘客姓名104以及他在哪個組 118。在本例中,數(shù)據(jù)集被示出為顯示一個示范性記錄,但是通常數(shù)據(jù)集可以包括任意數(shù)量 的記錄。輸入和輸出數(shù)據(jù)集可以被處理為數(shù)據(jù)流,例如,像組成數(shù)據(jù)集的數(shù)據(jù)流入圖或者流 出圖一樣。
[0038] 然后,可以在基于圖的計算中實現(xiàn)變換,該基于圖的計算具有通過鏈接表示數(shù)據(jù) 流的元素而連接的數(shù)據(jù)處理組件。例如,圖IB的簡單計算圖130將輸入視為兩個數(shù)據(jù)集 132、134 (例如,經(jīng)常飛行數(shù)據(jù)和航班預(yù)定數(shù)據(jù)),將每個集合中的數(shù)據(jù)在單獨的格式化組 件136、138中進行格式化從而它們能被一起使用,并且在聯(lián)合組件140中將它們聯(lián)合以產(chǎn) 生輸出數(shù)據(jù)集142。變換本身可以是基于圖的計算,諸如圖130中的計算,或者可以在圖的 組件內(nèi)實現(xiàn),諸如組成圖130的獨立組件136、138和140。
[0039] 為了為非專業(yè)用戶簡化變換的創(chuàng)建,為這些用戶以他們熟悉的格式提供了一種工 具用于輸入一組商務(wù)規(guī)則,稱為規(guī)則集,該工具告訴計算機系統(tǒng)他們需要變換做些什么。規(guī) 則集是產(chǎn)生單個變換的一組規(guī)則。一個規(guī)則可以由一個或多個規(guī)則例(rulecase)組成, 這些規(guī)則例根據(jù)輸入來確定用于規(guī)則的輸出的不同值。一個規(guī)則也可以包括其它規(guī)則。一 個規(guī)則集中的其它規(guī)則可以產(chǎn)生針對額外輸出或者替換輸出的值。規(guī)則集可以包含其它規(guī) 則集,這稱為"內(nèi)含(included)"規(guī)則集。
[0040] 在圖IC中示出利用日志記錄信息(logginginformation)的變換生成系統(tǒng)的一 般模型。商務(wù)規(guī)則環(huán)境(businessrulesenvironment,BRE)包括生成器150,其從編輯 器154接收規(guī)則集152作為輸入并且生成變換156。作為變換生成選項中的一個,可以隨 后通過定制圖形用戶接口中的各種日志記錄(logging)事件和信息來激活日志記錄。日志 (log)是發(fā)生在組織的系統(tǒng)和網(wǎng)絡(luò)內(nèi)的事件的記錄。日志由條目組成;每個條目都包含與 已經(jīng)在系統(tǒng)或者網(wǎng)絡(luò)內(nèi)發(fā)生的特定事件有關(guān)的信息。日志能夠用于解決問題,以及用于提 供許多功能,諸如優(yōu)化系統(tǒng)和網(wǎng)絡(luò)性能、記錄用戶的動作以及提供對調(diào)查異常活動有用的 數(shù)據(jù)。日志能夠包含與許多不同類型的事件有關(guān)的信息。根據(jù)系統(tǒng)的體系結(jié)構(gòu)以及變換和 商務(wù)規(guī)則的目的,所生成的變換156可以提供給基于圖的計算系統(tǒng)158作為將用于圖中的 一個組件或者作為整個圖本身。例如,生成器150可以是編譯器、定制的程序或者另一個基 于圖的計算,被配置為使用標準工具以接收規(guī)則集152并輸出變換156。
[0041] 生成器150還可以在規(guī)則集152被編輯時更新變換156。當規(guī)則集152被編輯時, 編輯器154可以為生成器提供整個規(guī)則集或者它可以僅提供新的或者修改的規(guī)則或規(guī)則 例152a。根據(jù)使用變換的系統(tǒng)的性能以及需要,生成器150可以生成全新的變換以替換初 始變換156,或者它可以提供包含所述變換的組件156a。
[0042] 不需要一個單獨的、專用的運行引擎用于在基于圖的計算158期間執(zhí)行日志記錄 操作。日志記錄能夠被配置為當其被運行時使用由圖組件調(diào)用的函數(shù)而發(fā)生。針對不同的 日志記錄結(jié)構(gòu),能夠提供針對規(guī)則運行的不同審核報告。例如,如圖IC中虛線箭頭所示(而 非實線箭頭示出的實際數(shù)據(jù)流),日志160a可以回溯到規(guī)則集152中的特定輸入記錄;而 日志160b可以反映專用規(guī)則例152a在早先時間就已經(jīng)被激發(fā)(fire) 了。
[0043] 參考圖2A,在一些例子中,可以將規(guī)則以電子表格格式輸入。電子表格200中的 觸發(fā)列202、204、206、208相應(yīng)于可用數(shù)據(jù)值,以及行210 &-1!相應(yīng)于規(guī)則例,8卩,與可用數(shù)據(jù) 值有關(guān)的準則集合。如果對于在其中規(guī)則例具有準則的各個觸發(fā)列來說,給定記錄(例如, 圖IA中的102)的數(shù)據(jù)值滿足觸發(fā)準則,那么規(guī)則例210n就應(yīng)用于該記錄。如果應(yīng)用規(guī)則 例210n,則基于一個或多個輸出列212生成輸出。其所有的觸發(fā)準則都得以滿足的規(guī)則例 可以稱為"已觸發(fā)(triggered)"。每個輸出列212相應(yīng)于一個潛在的輸出變量,可應(yīng)用的 行210n的相應(yīng)單元格中的值為該變量確定輸出一一如果有的話。單元格可以包含分配給 變量的值或者它可以