專利名稱:實(shí)現(xiàn)用于集成系統(tǒng)的統(tǒng)一模型的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實(shí)現(xiàn)用于集成系統(tǒng)的統(tǒng)一模型的系統(tǒng)和方法。更為 特別地,本發(fā)明涉及一種系統(tǒng)和方法,其用于使用統(tǒng)一模型以在數(shù)據(jù)流 程圖中表達(dá)應(yīng)用而不設(shè)人工邊界,其反過來允許更大的應(yīng)用優(yōu)化。
背景技術(shù):
集成世界中的應(yīng)用通常按諸如批量、事務(wù)和連續(xù)之類的類別進(jìn)行區(qū)
分。批量處理集成應(yīng)用(IA)主要使用在新的集成解決方案替代舊定制 的完全不同的應(yīng)用并且需要移動(dòng)現(xiàn)有數(shù)據(jù)的情況下。事務(wù)IA主要以商 業(yè)過程管理(BPM)的形式出現(xiàn),其中各種應(yīng)用在事務(wù)保證下通過互換 請求和彼此應(yīng)答來實(shí)現(xiàn)商業(yè)過程。而連續(xù)IA是判決支持領(lǐng)域中的新興 應(yīng)用。綜合事件處理(CEP)、事件驅(qū)動(dòng)架構(gòu)(EDA)、實(shí)時(shí)數(shù)據(jù)挖掘和 知識(shí)提取、商業(yè)活動(dòng)監(jiān)視(BAM)都是連續(xù)應(yīng)用的例子,其連續(xù)地處理
據(jù)更好的理解。
在企業(yè)集成世界中的主流技術(shù)是ETL (提取、變換、裝載)、EAI (企業(yè)應(yīng)用集成)和EII (企業(yè)信息集成)。這些技術(shù)中的每種技術(shù)相比 其他技術(shù)都具有優(yōu)點(diǎn)和缺點(diǎn),并且因此這些技術(shù)的任何一種都沒有獲得 壓倒性的勝利。雖然這些技術(shù)具有不同的能力,但是它們?nèi)匀还蚕碓S多 概念和組件,并且在許多時(shí)候可以使用 一種技術(shù)來替代另 一種。
SQL (選擇查詢語言)模型是在關(guān)系數(shù)據(jù)庫所基于的EII系統(tǒng)背后 的模型。用SQL表達(dá)的這種模型被變換成數(shù)據(jù)流有向樹圖。該圖的頂點(diǎn) 是集合算子,并且數(shù)據(jù)集合在各算子間流動(dòng),只要它們是可用的。在ETL 系統(tǒng)背后的模型也是類似于SQL模型的數(shù)據(jù)流模型,雖然該模型可以表 達(dá)任何有向非循環(huán)圖而不僅僅是樹圖。在EAI系統(tǒng)背后的模型是工作流
模型。該模型可以用BPEL來表達(dá)并且表示有向非循環(huán)圖,在該圖中頂 點(diǎn)是一旦進(jìn)入數(shù)據(jù)就執(zhí)行的活動(dòng)。
所發(fā)現(xiàn)的挑戰(zhàn)是,現(xiàn)有技術(shù)具有人工區(qū)分,其產(chǎn)生相當(dāng)多的冗余。 另外,現(xiàn)有技術(shù)不提供針對連續(xù)應(yīng)用的解決方案。所發(fā)現(xiàn)的另一個(gè)挑戰(zhàn) 是,現(xiàn)有模型中的每種模型相比其他模型具有缺點(diǎn),并且因此對于解決 方案架構(gòu)而言,選擇設(shè)計(jì)應(yīng)用將使用的系統(tǒng)和模型可能并不總是清楚 的。另外,因?yàn)楝F(xiàn)有模型的缺點(diǎn),許多解決方案不能使用現(xiàn)有模型來實(shí) 現(xiàn)。作為結(jié)果,解決方案架構(gòu)可能需要定制解決方案,其開發(fā)和維護(hù)起 來都很昂貴。此外,定制解決方案通常質(zhì)量較低,因?yàn)榇虬浖?jīng)歷更 苛刻的測試。
因此,需要一種系統(tǒng)和方法,其使用包含現(xiàn)有系統(tǒng)模型的優(yōu)點(diǎn)的統(tǒng) 一模型來表達(dá)應(yīng)用。
發(fā)明內(nèi)容
已經(jīng)發(fā)現(xiàn),通過使用 一種用于在數(shù)據(jù)流計(jì)算系統(tǒng)中使用數(shù)據(jù)流程圖 來模擬數(shù)據(jù)流的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品解決了上述挑戰(zhàn)。該數(shù)據(jù) 流程圖包括多個(gè)算子,每個(gè)算子包括至少一個(gè)輸入端口或至少一個(gè)輸出 端口。該數(shù)據(jù)流程圖還包括多個(gè)弧,每個(gè)弧將算子的輸出端口之一連接 到不同算子的輸入端口。在該數(shù)據(jù)流程圖中,多個(gè)數(shù)據(jù)項(xiàng)沿著各算子之 間的弧以流進(jìn)行流動(dòng)。第一算子將多個(gè)數(shù)據(jù)項(xiàng)歸類成粒子并對該粒子歸 類執(zhí)行計(jì)算,其得到已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)。該第一算子在多個(gè)弧之一上 將已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)傳送給第二算子。另外,該第一算子基于元狀態(tài) 轉(zhuǎn)移在它的元端口之一上產(chǎn)生控制數(shù)據(jù)項(xiàng),所述元狀態(tài)轉(zhuǎn)移響應(yīng)于對在 粒子歸類執(zhí)行的計(jì)算。最終,該第一算子將控制數(shù)據(jù)項(xiàng)傳送給另一算子, 其反過來基于控制數(shù)據(jù)項(xiàng)來控制已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)的流動(dòng)。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品使用控制數(shù)據(jù)項(xiàng) 來通過使用門算子控制已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)的流動(dòng)。在這個(gè)實(shí)施例中, 門算子阻止已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)到達(dá)不同的算子,直到控制數(shù)據(jù)項(xiàng)指示 門算子將已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)提供給不同的算子。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品將控制數(shù)據(jù)項(xiàng)傳 送給第二算子,其給第二算子指示一時(shí)間,以在該時(shí)間處處理已計(jì)算的
多個(gè)數(shù)據(jù)項(xiàng)。在另一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品預(yù)定連 接到元端口的弧只接收多個(gè)控制數(shù)據(jù)項(xiàng)的子集。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品將對應(yīng)于在多個(gè) 弧上流動(dòng)的多個(gè)數(shù)據(jù)項(xiàng)的分層數(shù)據(jù)模型中層級的重復(fù)部分的粒子歸類。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品將多個(gè)控制數(shù)據(jù) 項(xiàng)耦合到外部資源運(yùn)算,以1更指示所述外部資源運(yùn)算的開始或完成。在 另一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品包括使用多個(gè)算子對多 個(gè)數(shù)據(jù)項(xiàng)的并行執(zhí)行。在又一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn) 品從包括流水線執(zhí)行和數(shù)據(jù)并行執(zhí)行的組中選擇該并行執(zhí)行。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品包括一個(gè)或多個(gè) 聲明狀態(tài)的算子,其累積在包括在粒子中的多個(gè)數(shù)據(jù)項(xiàng)上的狀態(tài)。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品將數(shù)據(jù)流程圖編 譯成可順序執(zhí)行的代碼。在另一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序 產(chǎn)品在第 一 算子處包括對應(yīng)于與對包括在粒子中的多個(gè)數(shù)據(jù)項(xiàng)執(zhí)行的 計(jì)算相關(guān)的當(dāng)前處理狀態(tài)的元狀態(tài)。在又一實(shí)施例中,該系統(tǒng)、方法和 計(jì)算機(jī)程序產(chǎn)品表達(dá)在多個(gè)行為之間的控制依賴性。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品將第一算子和第
二算子指定為獨(dú)立的處理構(gòu)造。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品在數(shù)據(jù)流程圖中 包括方框,所述數(shù)據(jù)流程圖包括第一算子和第二算子。在另一實(shí)施例中, 該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品包括方框元狀態(tài),該方框元狀態(tài)對應(yīng)于 與第一算子和第二算子相關(guān)聯(lián)的元狀態(tài)。在又一實(shí)施例中,該系統(tǒng)、方 法和計(jì)算機(jī)程序產(chǎn)品在方框上包括方框元端口 ,其基于方框元狀態(tài)的轉(zhuǎn) 移來產(chǎn)生方框控制數(shù)據(jù)。
在一個(gè)實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品使用數(shù)據(jù)流程圖 來對應(yīng)于批量數(shù)據(jù)處理應(yīng)用。在另一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī) 程序產(chǎn)品使用數(shù)據(jù)流程圖來對應(yīng)流數(shù)據(jù)處理應(yīng)用。在又一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品使用數(shù)據(jù)流程圖來對應(yīng)事件處理應(yīng)用。在 又一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品在數(shù)據(jù)流程圖中包括圖 形符號(hào)。在另一實(shí)施例中,該系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品在數(shù)據(jù)流程 圖中包括非圖形語言實(shí)現(xiàn)。
上述內(nèi)容是概述并且因此必要地包含對細(xì)節(jié)的簡化、概括和省略; 因此本領(lǐng)域的普通技術(shù)人員將意識(shí)到該概述只是說明性的并且不是旨 在作為任何限制。在以下闡述的非限制的詳細(xì)描述中,由權(quán)利要求所唯 一定義的其它方面、發(fā)明性的特征、以及本發(fā)明的優(yōu)點(diǎn)將變得明顯。
通過參考附圖可以更好地理解本發(fā)明,并且向本領(lǐng)域的普通技術(shù)人 員明白展示本發(fā)明的眾多目的、特征以及優(yōu)點(diǎn)。
圖1是示出用戶基于統(tǒng)一集成模型創(chuàng)建數(shù)據(jù)流程圖的示圖; 圖2是示出在使用統(tǒng)一集成模型來生成應(yīng)用代碼時(shí)所采取的步驟的 流程圖3是示出算子組件的輸入端口、輸出端口和元端口的示圖; 圖4A是用于算子組件的弧級元狀態(tài)的狀態(tài)圖; 圖4B是用于算子組件的粒子級元狀態(tài)的狀態(tài)圖; 圖5是示出統(tǒng)一集成模型的各種組件的示子的示圖7是在統(tǒng)一集成模型內(nèi)"熔合"粒子和"分裂"粒子的示圖; 圖8是示出在統(tǒng)一集成模型內(nèi)將粒子視作波的示圖; 圖9是示出算子組件使用元端口來順序地處理粒子的示圖; 圖IO是示出數(shù)據(jù)模型的示圖11是示出需要不同模型來表達(dá)應(yīng)用的現(xiàn)有技術(shù)的示圖; 圖12是示出使用統(tǒng)一集成模型所表達(dá)的應(yīng)用的示圖; 圖13是能夠?qū)崿F(xiàn)本發(fā)明的計(jì)算設(shè)備的框圖。
具體實(shí)施例方式
以下內(nèi)容旨在提供對本發(fā)明的例子的詳細(xì)描述,并且不應(yīng)該被用來 限制本發(fā)明自身。相反,任何數(shù)量的變型可落入所附的權(quán)利要求所定義 的本發(fā)明的范圍內(nèi)。
圖l是示出用戶基于統(tǒng)一集成^^莫型創(chuàng)建數(shù)據(jù)流程圖的示圖。用戶100
提供輸入110給集成化語言引擎130,其使用統(tǒng)一集成模型來生成數(shù)據(jù) 流程圖。反過來,集成化語言引擎130編譯數(shù)據(jù)流程圖以創(chuàng)建應(yīng)用代碼。
系統(tǒng)120包括集成化語言引擎130、組件存儲(chǔ)庫140、數(shù)據(jù)流程圖 存儲(chǔ)庫150、以及代碼存儲(chǔ)庫160。集成化語言引擎130從用戶100接 收輸入IIO用于創(chuàng)建數(shù)據(jù)流程圖。數(shù)據(jù)流程圖是有向非循環(huán)圖,其包括 諸如算子、弧和方框之類的組件以表達(dá)應(yīng)用。使用統(tǒng)一模型組件,在應(yīng) 用i殳計(jì)過程期間,不放置人工邊界,由此能夠進(jìn)行優(yōu)化以確定如何以不 同的方式實(shí)現(xiàn)不同的設(shè)計(jì)方面(更多的細(xì)節(jié)請參見圖12和對應(yīng)的文字)。 組件存儲(chǔ)庫140、數(shù)據(jù)流程圖存儲(chǔ)庫150和代碼存儲(chǔ)庫160可被存儲(chǔ)在 諸如計(jì)算機(jī)硬盤驅(qū)動(dòng)器之類的非易失性存儲(chǔ)區(qū)域上。
集成化語言引擎130從對應(yīng)于輸入110的組件存儲(chǔ)庫140檢索組件, 并在數(shù)據(jù)流程圖上由用戶100所指定的位置處插入組件,諸如算子和/ 或弧。當(dāng)用戶IOO結(jié)束編輯數(shù)據(jù)流程圖時(shí),集成化語言引擎130編譯數(shù) 據(jù)流程圖,并在代碼存儲(chǔ)庫160中存儲(chǔ)已編譯的代碼。
集成化語言引擎130給用戶IOO提供設(shè)計(jì)綜合集成的能力,在單個(gè) 圖形設(shè)計(jì)范例中綜合集成涉及事務(wù)、批量、流和事件驅(qū)動(dòng)行為的組合。 另外,.集成化語言引擎130還給用戶IOO提供以單個(gè)工具表達(dá)這種設(shè)計(jì) 的能力,而不需要在設(shè)計(jì)過程中過早地針對不同的最后執(zhí)行環(huán)境強(qiáng)迫使 用不同的工具。
圖2是示出在使用統(tǒng)一集成模型來生成應(yīng)用代碼時(shí)所采取的步驟的 流程圖。處理開始于200處,其中處理在步驟210處從用戶IOO接收輸 入。例如,用戶IOO可選擇將被插入數(shù)據(jù)流程圖的統(tǒng)一模型組件,諸如 算子、弧和方框。
在步驟220處,處理從組件存儲(chǔ)庫140 4全索統(tǒng)一一莫型組件,開始生
成數(shù)據(jù)流程圖,其被存儲(chǔ)在數(shù)據(jù)流程圖存儲(chǔ)庫150中。數(shù)據(jù)流程圖可對 應(yīng)于諸如批量數(shù)據(jù)處理應(yīng)用、流數(shù)據(jù)處理應(yīng)用或事件處理應(yīng)用之類的應(yīng) 用。數(shù)據(jù)流程圖可包括圖形符號(hào)或非圖形語言實(shí)現(xiàn)。組件存儲(chǔ)庫140和 數(shù)據(jù)流程圖存儲(chǔ)庫150與圖1中所示出的相同。
確定用戶IOO是否希望提供關(guān)于數(shù)據(jù)流程圖的更多的輸入,諸如添 加更多的算子和/或使用弧連接算子(判決230)。如果用戶100希望提 供更多的輸入,則判決230轉(zhuǎn)向"是"分支232,其返回以處理更多的 用戶輸入。這種循環(huán)一直繼續(xù)直到用戶IOO結(jié)束編輯數(shù)據(jù)流程圖,在該 點(diǎn)處判決230轉(zhuǎn)向"否"分支238。
在步驟240處,處理使用編譯器和優(yōu)化器來編譯在繪圖存儲(chǔ)庫150 中存儲(chǔ)的數(shù)據(jù)流程圖,并且將已編譯的代碼存儲(chǔ)在代碼存儲(chǔ)庫160中。 在步驟250處,處理執(zhí)行應(yīng)用代碼,并在步驟260處結(jié)束。代碼存儲(chǔ)庫 160與圖1中所示出的相同。
圖3是示出算子組件的輸入端口、輸出端口和元端口的示圖。算子 300從外部源讀取數(shù)據(jù),將數(shù)據(jù)寫到外部源,以及施加數(shù)據(jù)變換。通常, 算子300通過輸入端口 310和320從進(jìn)入弧消費(fèi)數(shù)據(jù),并通過輸出端口
330在外出弧上產(chǎn)生數(shù)據(jù)。在一個(gè)實(shí)施例中,統(tǒng)一集成模型提供多個(gè)算 子類型作為內(nèi)置算子以提供/>共數(shù)據(jù)存取和變換。在這個(gè)實(shí)施例中,當(dāng)
用戶需要其他算子類型時(shí),用戶可創(chuàng)建定制算子并接著將它們集成到統(tǒng) 一集成模型。
算子300包括算子300產(chǎn)生控制數(shù)據(jù)項(xiàng)的兩個(gè)"元端口",其是弧 級元端口 340和粒子級元端口 350?;〖壴丝?340纟是供"弧級"元狀 態(tài),其從處理起始點(diǎn)到處理終止點(diǎn)一直保持算子300的執(zhí)行狀態(tài)。粒子 級元端口 350提供"粒子級"元狀態(tài),其提供在任何給定的時(shí)間點(diǎn)處輸 入粒子的執(zhí)行狀態(tài)。
另外,元端口 340和350與"點(diǎn)火(firing)規(guī)則"相關(guān)聯(lián),其定義 元狀態(tài)粒子前進(jìn)穿過元端口的元狀態(tài)轉(zhuǎn)移。在一個(gè)實(shí)施例中,當(dāng)定義了 不只一個(gè)轉(zhuǎn)換時(shí),粒子級元端口 350可以針對單個(gè)進(jìn)入粒子發(fā)送多個(gè)粒 子。
另外,算子300服從生產(chǎn)者-消費(fèi)者模型,其中數(shù)據(jù)是依照值而不
是引用進(jìn)行移動(dòng)的。換言之,粒子不與其它粒子共享數(shù)據(jù)。算子300針 對每個(gè)輸入粒子維護(hù)元狀態(tài),其保持執(zhí)行狀態(tài)。當(dāng)算子300連接到另一 算子時(shí),可建立異步通信。在一個(gè)實(shí)施例中,用戶可改變到兩個(gè)算子之 間的同步通信。在這個(gè)實(shí)施例中,這種改變對應(yīng)著性能的優(yōu)化,而語義 可保留為異步的。
算子300在輸入粒子上可以是"聲明狀態(tài)的,,或"無狀態(tài)的"。當(dāng) 算子300是聲明狀態(tài)的,算子300維護(hù)各執(zhí)行步驟之間的內(nèi)部狀態(tài)。例 如,窗口算子是收集多個(gè)粒子并基于給定的窗口定義來生成單個(gè)粒子的 算子。在每個(gè)執(zhí)行步驟中,窗口算子消費(fèi)單個(gè)粒子并更新其內(nèi)部狀態(tài), 直到該窗口結(jié)束并產(chǎn)生輸出粒子。
當(dāng)算子300是"無狀態(tài)的",算子300不維護(hù)執(zhí)行步驟之間的內(nèi)部 狀態(tài)。例如,在單個(gè)執(zhí)行步驟中,分類算子消費(fèi)單個(gè)粒子,對該粒子內(nèi) 的下屬內(nèi)容進(jìn)行分類,以及產(chǎn)生包含已分類內(nèi)容的單個(gè)粒子。在執(zhí)行步 驟的結(jié)尾處,分類算子不保持狀態(tài)。
圖4A是用于算子組件的弧級元狀態(tài)的狀態(tài)圖。弧級元狀態(tài)從處理 起始點(diǎn)到處理終止點(diǎn)一直保持算子執(zhí)行的狀態(tài)。弧級元狀態(tài)開始于初始 狀態(tài)400,并前進(jìn)到就緒狀態(tài)410。當(dāng)粒子到達(dá)時(shí),算子轉(zhuǎn)移到執(zhí)行狀 態(tài)420。在算子執(zhí)行之后,當(dāng)弧關(guān)閉時(shí)算子轉(zhuǎn)移到已完成狀態(tài)430,或 者當(dāng)算子遇到不可恢復(fù)的錯(cuò)誤時(shí)轉(zhuǎn)移到錯(cuò)誤狀態(tài)440。
圖4B是用于算子組件的粒子級元狀態(tài)的狀態(tài)圖。粒子級元狀態(tài)包 括在任何給定的時(shí)間點(diǎn)處的輸入粒子的執(zhí)行狀態(tài)。算子的粒子級元狀態(tài) 開始于空狀態(tài)450。當(dāng)粒子到達(dá)時(shí),算子轉(zhuǎn)移到"處理中"狀態(tài)460。 從處理中狀態(tài)460開始,當(dāng)處理完成時(shí)算子粒子級狀態(tài)轉(zhuǎn)移到已完成狀 態(tài)470,或者當(dāng)處理遇到錯(cuò)誤時(shí)轉(zhuǎn)移到錯(cuò)誤狀態(tài)480。
圖5是示出統(tǒng)一集成模型的各種組件的示圖。模型500包括數(shù)據(jù)源 510、算子A540、算子B 560、以及數(shù)據(jù)目標(biāo)580?;?30將數(shù)據(jù)源510 的輸出端口連接到算子A 540的輸入端口 ?;?50將算子A 540的輸出 端口連接到算子B 560的輸入端口。并且,弧570將算子B 560的輸出 端口連接到數(shù)據(jù)目標(biāo)580的輸入端口 ?;?30、弧550和弧570中的每 個(gè)弧表示它所連接的算子之間的數(shù)據(jù)流。在一個(gè)實(shí)施例中,算子A540 和算子B 560可以是獨(dú)立的處理構(gòu)造。
算子A 540和算子B 560在"步驟"中執(zhí)行對應(yīng)的算法。在每個(gè)步 驟中,算子消費(fèi)來自輸入端口的單個(gè)粒子,并在它的每個(gè)輸出端口上產(chǎn) 生有限整數(shù)數(shù)量的粒子。
圖5示出粒子520沿著弧530行進(jìn)。如可以看見的那樣,粒子520 包括粒子520 - 526。粒子520 - 526中的每個(gè)粒子是可被算子整個(gè)地消 費(fèi)或產(chǎn)生的數(shù)據(jù)單元。在一給定的時(shí)間點(diǎn),弧530、弧550和弧570或 者包含已排好序的粒子,或者處于關(guān)閉(closed)狀態(tài)?;∩系拿總€(gè)粒 子在被包括在該弧中的粒子聯(lián)合中可以被唯一地識(shí)別。在一個(gè)實(shí)施例 中,弧可以是有限弧或無限弧。有限弧具有"關(guān)閉時(shí)間,,tl,對于大于 tl的每個(gè)時(shí)間t2,弧不包括粒子并且處于關(guān)閉狀態(tài)。相反,無限弧沒有 任4可關(guān)閉時(shí)間。
弧內(nèi)的粒子順序是到達(dá)的順序(FIFO)。然而,僅當(dāng)算子是聲明狀 態(tài)的算子時(shí),粒子的順序才是重要的。因此,在實(shí)現(xiàn)中,系統(tǒng)可以針對 無狀態(tài)的算子無序地處理粒子,并且在必要時(shí)在聲明狀態(tài)的算子之前再 次對粒子重新排序。當(dāng)用戶明確地創(chuàng)建執(zhí)行分支(例如通過使用開關(guān)算 子)時(shí),用戶可負(fù)責(zé)在必要時(shí)通過可用構(gòu)造來重新獲得,執(zhí)行順序。在一 個(gè)實(shí)施例中,此處所描述的本發(fā)明可自動(dòng)地重新建立執(zhí)行順序。
考慮粒子520 - 526,每個(gè)粒子主要由它關(guān)聯(lián)的模式(schema)來分 類,而在相同弧上的粒子遵守相同的模式。
子的示圖。算子620經(jīng)由數(shù)據(jù)端口連接到弧。單個(gè)輸入端口連接到單個(gè) 弧,而單個(gè)輸出端口可連接到多個(gè)弧用于復(fù)制。端口可限制弧的類型(有 限數(shù)據(jù)弧、無限數(shù)據(jù)弧)和其所連接的數(shù)據(jù)的類型(經(jīng)由模式)。
算子600通過弧610提供粒子615給算子620。反過來,算子620 處理粒子615,并分別通過弧630、 640和650提供粒子635、 645和655 給算子660、 670和680。
圖7是在統(tǒng)一集成模型內(nèi)"熔合"粒子和"分裂"粒子的示圖。使 用此處所描述的本發(fā)明,粒子可被"分裂"成較小的粒子,并且較小的
粒子可被"熔合"成較大的粒子。圖7示出粒子700和710可被分裂成 粒子720和730。同樣,粒子720和730可被熔合成粒子700和710。
分裂和熔合粒子實(shí)現(xiàn)了控制粒度的改變。使用處理消費(fèi)者訂單的系 統(tǒng)作為例子,每個(gè)訂單包括一組零件。在這個(gè)例子中,單個(gè)消費(fèi)者訂單 可^皮;〖見為粒子而該訂單的各零件是該粒子內(nèi)的子粒子。此處所描述的本 發(fā)明允許用戶以零件級粒度或者以訂單級粒度來描述各操作之間的依 賴性。當(dāng)用戶僅在訂單級粒度來表達(dá)依賴性時(shí),系統(tǒng)可通過并行地處理 零件(例如,作為波。參見下文)來進(jìn)一步優(yōu)化執(zhí)行。另外,通過這種 二元性,統(tǒng)一 集成模型將工作流模型語義與數(shù)據(jù)流模型語義相結(jié)合。
圖8是示出在統(tǒng)一集成模型內(nèi)將粒子視作波的示圖。當(dāng)粒子計(jì)算發(fā) 生時(shí),粒子可以具有"波"的性質(zhì)。波800包>^舌粒子850、 855和860, 而波810包括粒子865、 870和875。當(dāng)波800和810通過算子820 - 840 時(shí),粒子信息被視作連續(xù)的信息流而不是離散的項(xiàng)。由此,算子組件當(dāng) 波到達(dá)時(shí)開始計(jì)算,并且當(dāng)波結(jié)束時(shí)結(jié)束計(jì)算。
另外,"不確定性原則,,允許系統(tǒng)在處理期間將波分開并對它從新 排序,并且接著邏輯地將波重構(gòu)成粒子。換言之,對波所表示的信息所 進(jìn)行的實(shí)際計(jì)算可包括并行執(zhí)行,諸如流水線執(zhí)行和數(shù)據(jù)并行操作。然 而,用戶可將波視作好像它是處于單個(gè)離散的粒子步驟。
圖9是示出算子組件使用元端口來順序地處理粒子的示圖。算子900 提供粒子905和910給算子915和多輸入門940。如可以看到的那樣, 圖9中所示出的例子示出應(yīng)用要求在插入操作(插入記錄960)之前執(zhí) 行刪除操作(刪除記錄915)。
刪除記錄算子915包括元端口 918,其使用數(shù)據(jù)流弧提供控制數(shù)據(jù) 項(xiàng)給算子組件940。刪除記錄算子915針對所處理的進(jìn)入粒子產(chǎn)生在弧 919上攜帶元狀態(tài)(也即,控制數(shù)據(jù)項(xiàng))(元狀態(tài)A925和元狀態(tài)B 920 ) 的粒子。在一個(gè)實(shí)施例中,弧919預(yù)定(subscribe)只接收元狀態(tài)的子 集。多輸入門940接收元狀態(tài)A 925和元狀態(tài)B 920,其4吏來自多輸入
門940的數(shù)據(jù)端口的粒子945和950能夠傳送到插入記錄960,由此實(shí) 現(xiàn)所需要的順序處理。
圖IO是示出數(shù)據(jù)模型的示圖。數(shù)據(jù)模型IOOO是通用數(shù)據(jù)模型,其 表示可由使用此處描述的本發(fā)明所表達(dá)的處理來運(yùn)算(manipulate )的所 有數(shù)據(jù)。如本領(lǐng)域的普通技術(shù)人員可以明白的那樣,數(shù)據(jù)模型1000與 現(xiàn)有XPathl.O/XSchemal.O數(shù)據(jù)模型相類似并具有相同的表達(dá)能力,其 中它們能夠描述各種各樣的分層數(shù)據(jù)結(jié)構(gòu)。作為結(jié)果,此處所描述的本 發(fā)明能夠?qū)?yīng)于數(shù)據(jù)項(xiàng)的層級的重復(fù)部分的粒子歸類。
圖11是示出需要不同模型來表達(dá)應(yīng)用的當(dāng)前技術(shù)的示圖。如可以看 見的那樣,繪圖1100需要各種模型來表達(dá)應(yīng)用,其是批量處理模型1110、 商業(yè)處理管理模型1120和1140、以及流處理模型1130。這樣,結(jié)果得 到的應(yīng)用必須在不同的系統(tǒng)上實(shí)現(xiàn)以適應(yīng)不同的模型。
圖12是示出使用統(tǒng)一集成模型所表達(dá)的應(yīng)用的示圖。如可以看見 的那樣,數(shù)據(jù)流程圖1200不包括在諸如圖11中所示出的應(yīng)用中的人工 邊界。作為結(jié)果,數(shù)據(jù)流程圖1200允許進(jìn)行優(yōu)化以確定用于特定設(shè)計(jì) 領(lǐng)域的適當(dāng)?shù)膶?shí)現(xiàn)。
從重用的觀點(diǎn)來看,此處所描述的本發(fā)明允許用戶在不同的執(zhí)行環(huán) 境中重用組件或組件的組合而在實(shí)現(xiàn)或語義方面沒有^f壬何差異。例如, 數(shù)據(jù)流程圖1200包括用于不同分類功能的算子1220和1240,這二者都 是分類算子組件。算子1220通過零件的保質(zhì)期(expiration date )進(jìn)行分 類而算子1240通過零件的名字進(jìn)行分類。另外,數(shù)據(jù)流程圖1200包括 算子1270和1230,這二者都是合并算子組件。算子1230合并每周的不 可得到的零件的計(jì)數(shù)和每周的可得到的零件的計(jì)數(shù),而算子1270將訂 單和消費(fèi)者信息與可得到的零件的信息合并。
另外,數(shù)據(jù)流程圖1200可包括方框,其是算子的歸類。這些方框 包括對應(yīng)于被包括在該方框里的算子的元狀態(tài)的方框元狀態(tài)。方框還包 括基于方框元狀態(tài)的轉(zhuǎn)移來產(chǎn)生方框控制數(shù)據(jù)的元端口 。
數(shù)據(jù)流程圖1200還用數(shù)據(jù)流語義來表達(dá)控制依賴性,其使用算子 1250和1260示出。這種組合提供一種便利的方法來表達(dá)應(yīng)用同時(shí)通過
改變粒子粒度來指定不同的控制級。
此外,數(shù)據(jù)流程圖1200保持分層依賴性。如可以看見的那樣,通
過使用算子1210、 1240和1260,單個(gè)概念可被分成多個(gè)概念,同時(shí)能 保持它們的分層依賴性。
圖13說明信息處理系統(tǒng)1301,其是能夠執(zhí)行此處所描述的計(jì)算操 作的計(jì)算機(jī)系統(tǒng)的簡化例子。計(jì)算機(jī)系統(tǒng)1301包括處理器1300,其被 耦合到主機(jī)(host)總線1302。 二級(L2)高速緩沖存儲(chǔ)器1304也耦 合到主機(jī)總線1302。主機(jī)-PCI橋1306被耦合到主存儲(chǔ)器1308,包括 高速緩沖存儲(chǔ)器和主存儲(chǔ)器控制功能,以及提供總線控制以處理在PCI 總線1310、處理器1300、 L2高速緩沖存儲(chǔ)器1304、主存儲(chǔ)器1308和 主機(jī)總線1302之間的轉(zhuǎn)換。主存儲(chǔ)器1308被耦合到主機(jī)-PCI橋1306 和主機(jī)總線1302。諸如LAN卡1330之類的由主機(jī)處理器1300獨(dú)自使 用的設(shè)備被耦合到PCI總線1310。服務(wù)處理器接口和ISA存耳又通路(Pass -through) 1312提供在PCI總線1310和PCI總線1314之間的接口。以 這種方式,PCI總線1314與PCI總線1310相隔離。諸如閃存1318之類 的設(shè)備被耦合到PCI總線1314。在一個(gè)實(shí)現(xiàn)中,閃存1318包括BIOS 代碼,其合并了用于各種低級系統(tǒng)功能和系統(tǒng)啟動(dòng)功能的必要的處理器 可執(zhí)行代碼。
PCI總線1314提供用于由主機(jī)處理器1300和包括例如閃存1318的 服務(wù)處理器1316所共享的各種設(shè)備的接口 。 PCI - ISA橋1335提供用于 處理在PCI總線1314與ISA總線1340之間的轉(zhuǎn)移的總線控制、通用串 行總線(USB)功能1345、電源管理功能1355,并可包括其它未示出的 功能元素,諸如實(shí)時(shí)時(shí)鐘(RTC)、 DMA控制、中斷支持以及系統(tǒng)管理 總線支持。非易失性RAM 1320被附到ISA總線1340。服務(wù)處理器1316 包括JTAG和I2C總線1322,用于在初始化步驟期間與處理器1300進(jìn) 行通信。JTAG/I2C總線1322還耦合到L2高速緩存1304、主機(jī)-PCI 橋1306和主存儲(chǔ)器1308,提供在處理器、服務(wù)處理器、L2高速緩存、 主機(jī)-PCI橋以及主存儲(chǔ)器之間的通信路徑。服務(wù)處理器1316還有權(quán)使 用系統(tǒng)電源資源以便關(guān)掉信息處理設(shè)備1301。外圍設(shè)備和輸入/輸出(I/O)設(shè)備可被附到各種接口 (例如,耦合到ISA總線1340的并行接口 1362、串行接口 1364、鍵盤接口 1368以 及鼠標(biāo)接口 1370)。作為替代,通過將超級I/0控制器(未示出)附到 ISA總線1340,可以適應(yīng)許多1/0設(shè)備。
為了將計(jì)算機(jī)系統(tǒng)1301附到另一計(jì)算機(jī)系統(tǒng)以通過網(wǎng)絡(luò)拷貝文件, LAN卡1330被耦合到PCI總線1310。類似地,為了將計(jì)算機(jī)系統(tǒng)1301 連接到ISP以使用電話線連接來連接到因特網(wǎng),調(diào)制解調(diào)器13135被連 接到串行口 1364和PCI-ISA橋1335。
盡管圖13示出使用處理器1300的一個(gè)信息處理系統(tǒng),但是信息處 理系統(tǒng)可以采取許多形式。例如,信息處理系統(tǒng)1301采用的形式可以 是桌面計(jì)算機(jī)、服務(wù)器、便攜式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本或其它 形式因素的計(jì)算機(jī)或數(shù)據(jù)處理系統(tǒng)。信息處理系統(tǒng)1301還可以采用其 它形式因素,諸如個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、ATM機(jī)器、便攜 式電話設(shè)備、通信設(shè)備或包括處理器和存儲(chǔ)器的其它設(shè)備。
本發(fā)明的優(yōu)選的實(shí)施例之一是客戶端應(yīng)用,也即在代碼模塊中的一 組指令(程序代碼),其例如可以駐留在計(jì)算機(jī)的隨機(jī)存取存儲(chǔ)器中。 直到被計(jì)算機(jī)需要為止,這組指令可以存儲(chǔ)在另一計(jì)算機(jī)存儲(chǔ)器中,例 如存儲(chǔ)在硬盤驅(qū)動(dòng)器或像光盤(供最終在CD ROM中使用)或軟盤(供 最終在軟盤驅(qū)動(dòng)器中使用)這樣的可移除存儲(chǔ)器,或者可以經(jīng)由因特網(wǎng) 或其它計(jì)算機(jī)網(wǎng)絡(luò)下載。因此,本發(fā)明可被實(shí)現(xiàn)成計(jì)算機(jī)程序產(chǎn)品用于在計(jì)算機(jī)中使用。另外,雖然在使用軟件有選擇地進(jìn)行激活或配置的通 用計(jì)算機(jī)中方便地實(shí)現(xiàn)了所描述的各種所方法,但是本領(lǐng)域的普通技術(shù) 人員還將認(rèn)識(shí)到這些方法可以用硬件、固件、或被構(gòu)造成執(zhí)行所需方法 步驟的更專用的裝置來實(shí)現(xiàn)。
63盡管已經(jīng)示出并描述了本發(fā)明的特定實(shí)施例,但是基于此處的教 導(dǎo),本領(lǐng)域的普通技術(shù)人員將明白,在不偏離本發(fā)明和其更廣的方面的 條件下,可以進(jìn)行變換和修改。因此,所附權(quán)利要求在其范圍內(nèi)包括屬 于本發(fā)明的真實(shí)精神和范圍內(nèi)的所有這種變換和修改。此外,應(yīng)當(dāng)理解, 本發(fā)明僅由所附的權(quán)利要求來限定。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,
如果意指指定數(shù)量的所引入的權(quán)利要求要素,則這種意指將在權(quán)利要求 中明確地陳述,并且如果沒有這種陳述就不存在任何這種限制。對于非 限制性的舉例,作為幫助理解,以下所附權(quán)利要求包含使用引言性短語 "至少一個(gè)"和"一個(gè)或多個(gè)"來引進(jìn)權(quán)利要求要素。然而,使用這種 短語不應(yīng)當(dāng)被解釋成暗指由非限定性冠詞"一個(gè)"和"一種"引入的權(quán) 利要求要素將包含這種所引入的權(quán)利要求要素的任何特定權(quán)利要求限 制到只包含一個(gè)這種要素的發(fā)明,即使當(dāng)同一權(quán)利要求包括引言性短語
"一個(gè)或多個(gè)"或"至少一個(gè)"和諸如"一個(gè)"和"一種"之類的非限 定性冠詞;同樣的情況也適用于限定性冠詞的在權(quán)利要求中的使用。
權(quán)利要求
1.一種用計(jì)算機(jī)實(shí)現(xiàn)的方法,用于使用數(shù)據(jù)流計(jì)算系統(tǒng)來模擬數(shù)據(jù)流,所述方法包括包括多個(gè)算子的數(shù)據(jù)流程圖,其中所述算子中的每個(gè)算子包括至少一個(gè)輸入端口或至少一個(gè)輸出端口;多個(gè)弧,其中所述弧中的每個(gè)弧將所述多個(gè)算子中的一個(gè)的輸出端口之一連接到所述多個(gè)算子中的另一個(gè)的輸入端口之一;多個(gè)數(shù)據(jù)項(xiàng),其沿著所述多個(gè)算子之間的所述多個(gè)弧以流進(jìn)行流動(dòng);在第一算子處將所述多個(gè)數(shù)據(jù)項(xiàng)歸類成粒子;在包括在所述多個(gè)算子中的第一算子處,對包括在所述粒子中的所述多個(gè)數(shù)據(jù)項(xiàng)執(zhí)行計(jì)算,得到已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng);在所述多個(gè)弧之一上將所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)從所述第一算子傳送到包括在所述多個(gè)算子中的第二算子;基于元狀態(tài)轉(zhuǎn)移在所述第一算子上包括的元端口處產(chǎn)生控制數(shù)據(jù)項(xiàng),所述元狀態(tài)轉(zhuǎn)移響應(yīng)于由所述第一算子對所述粒子歸類執(zhí)行的計(jì)算;以及將所述控制數(shù)據(jù)項(xiàng)從所述第一算子傳送到所述多個(gè)算子之一,其中所述控制數(shù)據(jù)項(xiàng)控制所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)的流動(dòng)。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述控制數(shù)據(jù)項(xiàng)使用門算子 來控制所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)的流動(dòng),所述門算子阻止所述已計(jì)算的 多個(gè)數(shù)據(jù)項(xiàng)到達(dá)所述多個(gè)算子之一,直到所述控制數(shù)據(jù)項(xiàng)指示所述門算 子將所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)提供給所述多個(gè)算子之一為止。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述控制數(shù)據(jù)項(xiàng)被傳送給所 述第二算子,所述控制數(shù)據(jù)項(xiàng)給所述第二算子指示一時(shí)間,以在所述時(shí) 間處處理所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)。
4. 根據(jù)權(quán)利要求1所述的方法,其中被連接到元端口的所述弧預(yù) 定只接收所述多個(gè)控制數(shù)據(jù)項(xiàng)的子集。
5. 根據(jù)權(quán)利要求1所述的方法,其中所述粒子歸類對應(yīng)于在所述多個(gè)孤上流動(dòng)的所述多個(gè)數(shù)據(jù)項(xiàng)的分層數(shù)據(jù);漠型中層級的重復(fù)部分。
6. 根據(jù)權(quán)利要求1所述的方法,其中所述粒子歸類還包括 將所述多個(gè)控制數(shù)據(jù)項(xiàng)耦合到外部資源運(yùn)算,以便指示所述外部資源運(yùn)算的開始或完成。
7. 根據(jù)權(quán)利要求1所述的方法,其中所述方法包括使用所述多個(gè) 算子對所述多個(gè)數(shù)據(jù)項(xiàng)的并行執(zhí)行。
8. 根據(jù)權(quán)利要求7所述的方法,其中所述并行執(zhí)行選自于流水線 執(zhí)行和數(shù)據(jù)并行執(zhí)行。
9. 根據(jù)權(quán)利要求1所述的方法,其中所述方法還包括一個(gè)或多個(gè) 聲明狀態(tài)的算子,其累積在包括在所述粒子中的所述多個(gè)數(shù)據(jù)項(xiàng)上的狀 態(tài)。
10. 根據(jù)權(quán)利要求1所述的方法,還包括 將所述數(shù)據(jù)流程圖編譯成可順序執(zhí)行的代碼。
11. 根據(jù)權(quán)利要求1所述的方法,其中所述第一算子包括對應(yīng)于與 對包括在所述粒子中的所述多個(gè)數(shù)據(jù)項(xiàng)執(zhí)行的計(jì)算相關(guān)的當(dāng)前處理狀 態(tài)的元狀態(tài)。
12. 根據(jù)權(quán)利要求1所述的方法,還包括 表達(dá)在多個(gè)行為之間的控制依賴性。
13. 根據(jù)權(quán)利要求1所述的方法,其中所述第一算子和所述第二算 子是獨(dú)立的處理構(gòu)造。
14. 根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)流程圖包括方框, 所述方框包括所述第一算子和所述第二算子。
15. 根據(jù)權(quán)利要求14所述的方法,其中所述方框包括方框元狀態(tài), 所述方框元狀態(tài)對應(yīng)于與所述第一算子和所述第二算子相關(guān)聯(lián)的元狀 態(tài)。
16. 根據(jù)權(quán)利要求15所述的方法,其中所述方框包括方框元端口 , 其基于所述方框元狀態(tài)的轉(zhuǎn)移產(chǎn)生方框控制數(shù)據(jù)。
17. 根據(jù)權(quán)利要求1所述的方法,還包括 其中所述數(shù)據(jù)流程圖對應(yīng)于批量數(shù)據(jù)處理應(yīng)用;其中所述數(shù)據(jù)流程圖對應(yīng)于流數(shù)據(jù)處理應(yīng)用; 其中所述數(shù)據(jù)流程圖對應(yīng)于事件處理應(yīng)用; 其中所述數(shù)據(jù)流程圖包括圖形符號(hào);以及 其中所述數(shù)據(jù)流程圖包括非圖形語言實(shí)現(xiàn)。
18. —種信息處理系統(tǒng),包括 一個(gè)或多個(gè)處理器; 可由所述處理器存取的存儲(chǔ)器; 可由所述處理器存取的存儲(chǔ)設(shè)備;以及用于模擬數(shù)據(jù)流的數(shù)據(jù)流計(jì)算系統(tǒng),所述數(shù)據(jù)流計(jì)算系統(tǒng)有效地 在數(shù)據(jù)流程圖中包括多個(gè)算子,其中所述算子中的每個(gè)算子包括至少 一個(gè)車lr入端口或至少 一個(gè)輸出端口 ;在所述數(shù)據(jù)流程圖中包括多個(gè)弧,其中所述弧中的每個(gè)弧將所述多個(gè)算子中的 一個(gè)的輸出端口之一連接到所述多個(gè)算子中的另 一個(gè)的輸入端口之一;包括多個(gè)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)項(xiàng)沿著所述多個(gè)算子之間的所述多個(gè)弧 以流進(jìn)行流動(dòng);在第一算子處將所述多個(gè)數(shù)據(jù)項(xiàng)歸類成粒子;在包括在所述多個(gè)算子中的第 一算子處,對包括在所述粒子中的所述多個(gè)數(shù)據(jù)項(xiàng)執(zhí)行計(jì)算,得到已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng);在所述多個(gè)弧之一上將所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)從所述第一算子 傳送到包括在所述多個(gè)算子中的第二算子;基于元狀態(tài)轉(zhuǎn)移在所述第一算子上包括的元端口處產(chǎn)生控制數(shù)據(jù) 項(xiàng),所述元狀態(tài)轉(zhuǎn)移響應(yīng)于由所述第一算子對所述粒子歸類執(zhí)行的計(jì) 算;以及將所述控制數(shù)據(jù)項(xiàng)從所述第一算子傳送到所述多個(gè)算子之一,其中 所述控制數(shù)據(jù)項(xiàng)控制所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)的流動(dòng)。
19. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述數(shù)據(jù)流計(jì)算 系統(tǒng)還有效地 使用門算子基于所述控制數(shù)據(jù)項(xiàng)來控制所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng) 的流動(dòng),所述門算子阻止所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)到達(dá)所述多個(gè)算子之 一,直到所述控制數(shù)據(jù)項(xiàng)指示所述門算子將所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)提 供給所述多個(gè)算子之一為止。
20. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述數(shù)據(jù)流計(jì)算系統(tǒng)還有效地傳送所述控制數(shù)據(jù)項(xiàng)給所述第二算子,所述控制數(shù)據(jù)項(xiàng)給所述第二 算子指示一時(shí)間,以在所述時(shí)間處處理所述已計(jì)算的多個(gè)數(shù)據(jù)項(xiàng)。
21. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述粒子歸類對 應(yīng)于在所述多個(gè)弧上流動(dòng)的所述多個(gè)數(shù)據(jù)項(xiàng)的分層數(shù)據(jù)模型中層級的 重復(fù)部分。
22. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述數(shù)據(jù)流計(jì)算 系統(tǒng)還有效地將所述多個(gè)控制數(shù)據(jù)項(xiàng)耦合到外部資源運(yùn)算,以便指示所述外部資 源運(yùn)算的開始或完成。
23. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述數(shù)據(jù)流計(jì)算 系統(tǒng)包括使用所述多個(gè)算子對所述多個(gè)數(shù)據(jù)項(xiàng)的并行執(zhí)行;以及其中所述并行執(zhí)行選自于包括流水線執(zhí)行和數(shù)據(jù)并行執(zhí)行的組。
24. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述數(shù)據(jù)流計(jì)算 系統(tǒng)還有效地將所述數(shù)據(jù)流程圖編譯成可順序執(zhí)行的代碼。
25. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中所述數(shù)據(jù)流計(jì)算 系統(tǒng)還有效地表達(dá)在多個(gè)行為之間的控制依賴性。
26. 根據(jù)權(quán)利要求18所述的信息處理系統(tǒng),其中連接到元端口的 弧預(yù)定只接收所述多個(gè)控制數(shù)據(jù)項(xiàng)的子集;其中所述數(shù)據(jù)流程圖包括方框,所述方框包括所述第一算子和所述第二算子;其中所述方框包括方框元狀態(tài),所述方框元狀態(tài)對應(yīng)于與所述第一 算子和所述第二算子相關(guān)聯(lián)的元狀態(tài);其中所述方框包括方框元端口 ,其基于所述方框元狀態(tài)的轉(zhuǎn)移產(chǎn)生方框控制數(shù)據(jù);其中所述第 一算子和所述第二算子是獨(dú)立的處理構(gòu)造;其中所述第一算子包括對應(yīng)于與對包括在所述粒子中的所述多個(gè) 數(shù)據(jù)項(xiàng)執(zhí)行的計(jì)算相關(guān)的當(dāng)前處理狀態(tài)的元狀態(tài);其中所述方法還包括一個(gè)或多個(gè)聲明狀態(tài)的算子,其累積在包括在 所述粒子中的所述多個(gè)數(shù)據(jù)項(xiàng)上的狀態(tài);其中所述數(shù)據(jù)流程圖對應(yīng)于批量數(shù)據(jù)處理應(yīng)用;其中所述數(shù)據(jù)流程圖對應(yīng)于流數(shù)據(jù)處理應(yīng)用;其中所述數(shù)據(jù)流程圖對應(yīng)于事件處理應(yīng)用;其中所述數(shù)據(jù)流程圖包括圖形符號(hào);以及其中所述數(shù)據(jù)流程圖包括非圖形語言實(shí)現(xiàn)。
全文摘要
介紹一種實(shí)現(xiàn)用于集成系統(tǒng)的統(tǒng)一模型的系統(tǒng)和方法。用戶提供輸入到集成化語言引擎以便將算子組件和弧組件放置到數(shù)據(jù)流程圖上。算子組件包括用于表達(dá)數(shù)據(jù)流的數(shù)據(jù)端口,并且還包括用于表達(dá)控制流的元端口?;〗M件將算子組件連接起來供數(shù)據(jù)和控制信息在各算子組件間流動(dòng)。數(shù)據(jù)流程圖是表達(dá)應(yīng)用的有向非循環(huán)圖,其在設(shè)計(jì)過程期間不包括人工邊界。一旦集成化語言引擎生成數(shù)據(jù)流程圖,則該集成化語言引擎將該數(shù)據(jù)流程圖編譯成生成的應(yīng)用代碼。
文檔編號(hào)G06F17/30GK101192239SQ20071019272
公開日2008年6月4日 申請日期2007年11月16日 優(yōu)先權(quán)日2006年12月1日
發(fā)明者A·巴爾-奧爾, M·J·貝克勒 申請人:國際商業(yè)機(jī)器公司