亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

實現(xiàn)用于集成系統(tǒng)的統(tǒng)一模型的系統(tǒng)和方法

文檔序號:6614556閱讀:222來源:國知局
專利名稱:實現(xiàn)用于集成系統(tǒng)的統(tǒng)一模型的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種實現(xiàn)用于集成系統(tǒng)的統(tǒng)一模型的系統(tǒng)和方法。更為 特別地,本發(fā)明涉及一種系統(tǒng)和方法,其用于使用統(tǒng)一模型以在數(shù)據(jù)流 程圖中表達應(yīng)用而不設(shè)人工邊界,其反過來允許更大的應(yīng)用優(yōu)化。
背景技術(shù)
集成世界中的應(yīng)用通常按諸如批量、事務(wù)和連續(xù)之類的類別進行區(qū)
分。批量處理集成應(yīng)用(IA)主要使用在新的集成解決方案替代舊定制 的完全不同的應(yīng)用并且需要移動現(xiàn)有數(shù)據(jù)的情況下。事務(wù)IA主要以商 業(yè)過程管理(BPM)的形式出現(xiàn),其中各種應(yīng)用在事務(wù)保證下通過互換 請求和彼此應(yīng)答來實現(xiàn)商業(yè)過程。而連續(xù)IA是判決支持領(lǐng)域中的新興 應(yīng)用。綜合事件處理(CEP)、事件驅(qū)動架構(gòu)(EDA)、實時數(shù)據(jù)挖掘和 知識提取、商業(yè)活動監(jiān)視(BAM)都是連續(xù)應(yīng)用的例子,其連續(xù)地處理
據(jù)更好的理解。
在企業(yè)集成世界中的主流技術(shù)是ETL (提取、變換、裝載)、EAI (企業(yè)應(yīng)用集成)和EII (企業(yè)信息集成)。這些技術(shù)中的每種技術(shù)相比 其他技術(shù)都具有優(yōu)點和缺點,并且因此這些技術(shù)的任何一種都沒有獲得 壓倒性的勝利。雖然這些技術(shù)具有不同的能力,但是它們?nèi)匀还蚕碓S多 概念和組件,并且在許多時候可以使用 一種技術(shù)來替代另 一種。
SQL (選擇查詢語言)模型是在關(guān)系數(shù)據(jù)庫所基于的EII系統(tǒng)背后 的模型。用SQL表達的這種模型被變換成數(shù)據(jù)流有向樹圖。該圖的頂點 是集合算子,并且數(shù)據(jù)集合在各算子間流動,只要它們是可用的。在ETL 系統(tǒng)背后的模型也是類似于SQL模型的數(shù)據(jù)流模型,雖然該模型可以表 達任何有向非循環(huán)圖而不僅僅是樹圖。在EAI系統(tǒng)背后的模型是工作流
模型。該模型可以用BPEL來表達并且表示有向非循環(huán)圖,在該圖中頂 點是一旦進入數(shù)據(jù)就執(zhí)行的活動。
所發(fā)現(xiàn)的挑戰(zhàn)是,現(xiàn)有技術(shù)具有人工區(qū)分,其產(chǎn)生相當(dāng)多的冗余。 另外,現(xiàn)有技術(shù)不提供針對連續(xù)應(yīng)用的解決方案。所發(fā)現(xiàn)的另一個挑戰(zhàn) 是,現(xiàn)有模型中的每種模型相比其他模型具有缺點,并且因此對于解決 方案架構(gòu)而言,選擇設(shè)計應(yīng)用將使用的系統(tǒng)和模型可能并不總是清楚 的。另外,因為現(xiàn)有模型的缺點,許多解決方案不能使用現(xiàn)有模型來實 現(xiàn)。作為結(jié)果,解決方案架構(gòu)可能需要定制解決方案,其開發(fā)和維護起 來都很昂貴。此外,定制解決方案通常質(zhì)量較低,因為打包軟件經(jīng)歷更 苛刻的測試。
因此,需要一種系統(tǒng)和方法,其使用包含現(xiàn)有系統(tǒng)模型的優(yōu)點的統(tǒng) 一模型來表達應(yīng)用。

發(fā)明內(nèi)容
已經(jīng)發(fā)現(xiàn),通過使用 一種用于在數(shù)據(jù)流計算系統(tǒng)中使用數(shù)據(jù)流程圖 來模擬數(shù)據(jù)流的系統(tǒng)、方法和計算機程序產(chǎn)品解決了上述挑戰(zhàn)。該數(shù)據(jù) 流程圖包括多個算子,每個算子包括至少一個輸入端口或至少一個輸出 端口。該數(shù)據(jù)流程圖還包括多個弧,每個弧將算子的輸出端口之一連接 到不同算子的輸入端口。在該數(shù)據(jù)流程圖中,多個數(shù)據(jù)項沿著各算子之 間的弧以流進行流動。第一算子將多個數(shù)據(jù)項歸類成粒子并對該粒子歸 類執(zhí)行計算,其得到已計算的多個數(shù)據(jù)項。該第一算子在多個弧之一上 將已計算的多個數(shù)據(jù)項傳送給第二算子。另外,該第一算子基于元狀態(tài) 轉(zhuǎn)移在它的元端口之一上產(chǎn)生控制數(shù)據(jù)項,所述元狀態(tài)轉(zhuǎn)移響應(yīng)于對在 粒子歸類執(zhí)行的計算。最終,該第一算子將控制數(shù)據(jù)項傳送給另一算子, 其反過來基于控制數(shù)據(jù)項來控制已計算的多個數(shù)據(jù)項的流動。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品使用控制數(shù)據(jù)項 來通過使用門算子控制已計算的多個數(shù)據(jù)項的流動。在這個實施例中, 門算子阻止已計算的多個數(shù)據(jù)項到達不同的算子,直到控制數(shù)據(jù)項指示 門算子將已計算的多個數(shù)據(jù)項提供給不同的算子。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品將控制數(shù)據(jù)項傳 送給第二算子,其給第二算子指示一時間,以在該時間處處理已計算的
多個數(shù)據(jù)項。在另一實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品預(yù)定連 接到元端口的弧只接收多個控制數(shù)據(jù)項的子集。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品將對應(yīng)于在多個 弧上流動的多個數(shù)據(jù)項的分層數(shù)據(jù)模型中層級的重復(fù)部分的粒子歸類。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品將多個控制數(shù)據(jù) 項耦合到外部資源運算,以1更指示所述外部資源運算的開始或完成。在 另一實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品包括使用多個算子對多 個數(shù)據(jù)項的并行執(zhí)行。在又一實施例中,該系統(tǒng)、方法和計算機程序產(chǎn) 品從包括流水線執(zhí)行和數(shù)據(jù)并行執(zhí)行的組中選擇該并行執(zhí)行。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品包括一個或多個 聲明狀態(tài)的算子,其累積在包括在粒子中的多個數(shù)據(jù)項上的狀態(tài)。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品將數(shù)據(jù)流程圖編 譯成可順序執(zhí)行的代碼。在另一實施例中,該系統(tǒng)、方法和計算機程序 產(chǎn)品在第 一 算子處包括對應(yīng)于與對包括在粒子中的多個數(shù)據(jù)項執(zhí)行的 計算相關(guān)的當(dāng)前處理狀態(tài)的元狀態(tài)。在又一實施例中,該系統(tǒng)、方法和 計算機程序產(chǎn)品表達在多個行為之間的控制依賴性。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品將第一算子和第
二算子指定為獨立的處理構(gòu)造。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品在數(shù)據(jù)流程圖中 包括方框,所述數(shù)據(jù)流程圖包括第一算子和第二算子。在另一實施例中, 該系統(tǒng)、方法和計算機程序產(chǎn)品包括方框元狀態(tài),該方框元狀態(tài)對應(yīng)于 與第一算子和第二算子相關(guān)聯(lián)的元狀態(tài)。在又一實施例中,該系統(tǒng)、方 法和計算機程序產(chǎn)品在方框上包括方框元端口 ,其基于方框元狀態(tài)的轉(zhuǎn) 移來產(chǎn)生方框控制數(shù)據(jù)。
在一個實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品使用數(shù)據(jù)流程圖 來對應(yīng)于批量數(shù)據(jù)處理應(yīng)用。在另一實施例中,該系統(tǒng)、方法和計算機 程序產(chǎn)品使用數(shù)據(jù)流程圖來對應(yīng)流數(shù)據(jù)處理應(yīng)用。在又一實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品使用數(shù)據(jù)流程圖來對應(yīng)事件處理應(yīng)用。在 又一實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品在數(shù)據(jù)流程圖中包括圖 形符號。在另一實施例中,該系統(tǒng)、方法和計算機程序產(chǎn)品在數(shù)據(jù)流程 圖中包括非圖形語言實現(xiàn)。
上述內(nèi)容是概述并且因此必要地包含對細節(jié)的簡化、概括和省略; 因此本領(lǐng)域的普通技術(shù)人員將意識到該概述只是說明性的并且不是旨 在作為任何限制。在以下闡述的非限制的詳細描述中,由權(quán)利要求所唯 一定義的其它方面、發(fā)明性的特征、以及本發(fā)明的優(yōu)點將變得明顯。


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