專利名稱:管理任務(wù)執(zhí)行的制作方法
技術(shù)領(lǐng)域:
本說明書涉及管理任務(wù)執(zhí)行。
背景技術(shù):
數(shù)據(jù)處理系統(tǒng)通常存儲、管理、處理并分析數(shù)據(jù)。數(shù)據(jù)處理系統(tǒng)可以簡單地操控被調(diào)度來在某一時(shí)間完成的一個(gè)或多個(gè)任務(wù)??商鎿Q地,數(shù)據(jù)處理系統(tǒng)可以是大規(guī)??蛻絷P(guān)系管理系統(tǒng)(customer relationship management system) 不論簡單還是復(fù)雜,數(shù)據(jù)處理系統(tǒng)通常包括一個(gè)或多個(gè)組件,例如處理元件、輸入數(shù)據(jù)和輸出數(shù)據(jù)。數(shù)據(jù)處理系統(tǒng)的處理元件確定數(shù)據(jù)處理系統(tǒng)的功能,例如,數(shù)據(jù)倉庫、客戶關(guān)系管理和數(shù)據(jù)挖掘(mining)等等。數(shù)據(jù)處理系統(tǒng)的輸入數(shù)據(jù)可以來自許多源。例如,輸入數(shù)據(jù)可以來自平面文件(flat file)、數(shù)據(jù)庫表格、操作系統(tǒng)等等。輸入數(shù)據(jù)也可以來自因特網(wǎng),將信息從一個(gè)系統(tǒng)攜帶到另一個(gè)系統(tǒng)。數(shù)據(jù)處理系統(tǒng)的輸出數(shù)據(jù)是處理元件生成的數(shù)據(jù)。輸出數(shù)據(jù)的格式取決于生成它們的處理元件而不同。
發(fā)明內(nèi)容
在一方面,通常,一種用于管理任務(wù)執(zhí)行的方法包括接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范;使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流,生成消息流;和響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。方面可以包括以下特征中的一個(gè)或多個(gè)。至少一個(gè)功能模塊被配置成啟動(dòng)所述數(shù)據(jù)流圖的執(zhí)行。所述多個(gè)任務(wù)的規(guī)范規(guī)定所述至少兩個(gè)任務(wù)之間的從屬關(guān)系。所述至少兩個(gè)任務(wù)之間的從屬關(guān)系定義關(guān)于與所述任務(wù)對應(yīng)的功能模塊的執(zhí)行的至少部分排序。所述至少兩個(gè)任務(wù)之間的從屬關(guān)系定義用于確定至少一個(gè)功能模塊的執(zhí)行所基于的至少一個(gè)條件的條件邏輯。至少一個(gè)功能模塊包括故障處理模塊,當(dāng)所述條件邏輯檢測在其他功能模塊中的一個(gè)的執(zhí)行中已發(fā)生故障時(shí)執(zhí)行該故障處理模塊。響應(yīng)于消息流中的兩個(gè)或更多消息而同時(shí)執(zhí)行一個(gè)或多個(gè)任務(wù)的給定集合的多次迭代。響應(yīng)于數(shù)據(jù)流中的數(shù)據(jù)元素而無需包括該數(shù)據(jù)元素,生成消息流中的一個(gè)或多個(gè)消息。消息流中的一個(gè)或多個(gè)消息包括數(shù)據(jù)流中的數(shù)據(jù)元素的至少一部分。至少一個(gè)功能模塊被配置成響應(yīng)于接收到消息流中的一個(gè)消息而發(fā)送確認(rèn)。至少一個(gè)數(shù)據(jù)處理組件重發(fā)未確認(rèn)的消息。所述方法還包括存儲標(biāo)識多個(gè)任務(wù)的規(guī)范的參數(shù)值。所述方法還包括將所生成的消息流發(fā)送到用于接收由參數(shù)值標(biāo)識的消息的應(yīng)用。所述方法還包括以對用于執(zhí)行所述任務(wù)的多個(gè)處理可視的參數(shù)來存儲由所述應(yīng)用接收到的消息。在另一方面,通常,一種用于管理任務(wù)執(zhí)行的系統(tǒng)包括任務(wù)管理系統(tǒng),包括用于接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范的電路;和數(shù)據(jù)處理系統(tǒng),包括使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流的電路,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn), 所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流。所述數(shù)據(jù)處理系統(tǒng)被配置成響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流來生成消息流。所述任務(wù)管理系統(tǒng)被配置成響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。在另一方面,通常,一種用于管理任務(wù)執(zhí)行的系統(tǒng)包括用于接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范的部件;用于使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流的部件,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流。所述數(shù)據(jù)處理系統(tǒng)被配置成響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流來生成消息流。所述任務(wù)管理系統(tǒng)被配置成響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。在另一方面,通常,一種計(jì)算機(jī)可讀介質(zhì)存儲用于管理任務(wù)執(zhí)行的計(jì)算機(jī)程序。所述計(jì)算機(jī)程序包括使得計(jì)算機(jī)進(jìn)行以下步驟的指令接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范;使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流,生成消息流;和響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。各方面可以包括下列優(yōu)點(diǎn)中的一個(gè)或多個(gè)。該技術(shù)使得數(shù)據(jù)流能夠被轉(zhuǎn)換為控制流,并且可以有利于其中輸入數(shù)據(jù)是持續(xù)的且不可預(yù)測的以及每條數(shù)據(jù)可能需要精心的處理的數(shù)據(jù)處理情形。數(shù)據(jù)流圖可被合并到任務(wù)管理應(yīng)用的控制流中,對于基于在響應(yīng)于數(shù)據(jù)流的元素而生成的輸入消息中存儲的值的數(shù)據(jù)處理,允許不同的數(shù)據(jù)流圖。對于數(shù)據(jù)處理和任務(wù)管理具有分離的開發(fā)環(huán)境允許數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用的開發(fā)被裝填(sandbox)到彼此不干擾的獨(dú)立環(huán)境中。因?yàn)閿?shù)據(jù)處理應(yīng)用通常強(qiáng)調(diào)數(shù)據(jù)可用性、數(shù)據(jù)變換和數(shù)據(jù)完整性,并且任務(wù)管理應(yīng)用通常強(qiáng)調(diào)錯(cuò)誤處理、系統(tǒng)資源分配和計(jì)算順序,因此在用于開發(fā)數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用的復(fù)雜數(shù)據(jù)處理系統(tǒng)中使用分離的圖形開發(fā)工具允許每個(gè)工具滿足每種類型的應(yīng)用的獨(dú)特需求。具有分離的數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用也便于軟件重用。在復(fù)雜數(shù)據(jù)處理系統(tǒng)中,數(shù)據(jù)可以來自多種外部源并且采取不同的格式。輸入數(shù)據(jù)可能是受損的并且可以使用錯(cuò)誤校驗(yàn)來確保數(shù)據(jù)完整性。分離的數(shù)據(jù)處理應(yīng)用處理重新格式化以及錯(cuò)誤校驗(yàn)封裝,并將該復(fù)雜度與下游任務(wù)管理應(yīng)用隔離,這允許不需要可能數(shù)據(jù)源的特定知識就可以開發(fā)任務(wù)管理應(yīng)用并且當(dāng)數(shù)據(jù)源或格式改變時(shí)可以重用任務(wù)管理應(yīng)用。同樣地,可以關(guān)注于數(shù)據(jù)源而不需要下游計(jì)算環(huán)境的特定知識來開發(fā)數(shù)據(jù)處理應(yīng)用, 并且甚至當(dāng)下游處理已經(jīng)改變時(shí)也可以重用數(shù)據(jù)處理應(yīng)用。從下列描述以及根據(jù)權(quán)利要求書,本發(fā)明的其他特征和優(yōu)點(diǎn)將變得明顯。
圖IA和圖IB示出了數(shù)據(jù)處理系統(tǒng)的示例。圖2是數(shù)據(jù)流圖的示例。圖3是控制流圖的示例。圖4圖示了如何將數(shù)據(jù)流轉(zhuǎn)換為控制流。圖5是數(shù)據(jù)處理系統(tǒng)的方框圖。圖6是示出如何配置應(yīng)用來迭代地運(yùn)行的示例。圖7A和圖7B是示出迭代任務(wù)處理的實(shí)現(xiàn)的方框圖。圖8是數(shù)據(jù)發(fā)送機(jī)制的示例。
具體實(shí)施例方式圖IA和圖IB示出了數(shù)據(jù)處理系統(tǒng)的示例。圖IA中的數(shù)據(jù)處理系統(tǒng)100是圖表生成工具。在圖IA中,Java程序104從包含銷售數(shù)據(jù)的表格102中讀取輸入,然后繪制柱狀圖106作為輸出。Java程序104是數(shù)據(jù)處理系統(tǒng)100的處理元件;表格102是輸入數(shù)據(jù); 以及柱狀圖106是輸出數(shù)據(jù)。圖IB中的數(shù)據(jù)處理系統(tǒng)120包括在零售商業(yè)中部署的調(diào)用(call)中心130。該調(diào)用中心130從倉庫122、制造商124、零售店1 和終端134中拉拽(pull)數(shù)據(jù)以便向調(diào)用中心代理131、132、133和134給出關(guān)于商品可用性的實(shí)時(shí)信息。服務(wù)器136、終端134和在它們上運(yùn)行的應(yīng)用是處理元件。從倉庫122、制造商124、零售店1 和終端134中拉拽的信息是輸入數(shù)據(jù)。顯示在調(diào)用代理的終端上的關(guān)于商品可用性的實(shí)時(shí)信息是輸出數(shù)據(jù)。諸如圖IB中所示的那樣的復(fù)雜數(shù)據(jù)處理系統(tǒng)處理大量數(shù)據(jù)并且通過在系統(tǒng)上運(yùn)行的應(yīng)用進(jìn)行無數(shù)的計(jì)算。一些應(yīng)用是商業(yè)上可獲得的。一些應(yīng)用必須是客戶訂制的以滿足客戶的特殊需求。復(fù)雜數(shù)據(jù)處理系統(tǒng)中的應(yīng)用往往是專用的。例如,一些應(yīng)用可以主要處理數(shù)據(jù)處理,并且一些可以主要處理任務(wù)管理。數(shù)據(jù)處理應(yīng)用通常處理數(shù)據(jù)相關(guān)的計(jì)算,例如重新格式化、排序和組織數(shù)據(jù)。數(shù)據(jù)處理應(yīng)用往往關(guān)注于數(shù)據(jù)如何從源流向目的地以及數(shù)據(jù)如何在處理中進(jìn)行變換。任務(wù)管理應(yīng)用通常處理計(jì)算相關(guān)業(yè)務(wù)的調(diào)度和初始化,例如執(zhí)行程序、 調(diào)度事件、管理處理和處理故障條件。任務(wù)管理應(yīng)用往往重點(diǎn)在于控制如何逐個(gè)任務(wù)地流動(dòng)以及控制流怎樣受條件邏輯和故障條件的影響。數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用通常具有不同的特性。用于這兩種類型的應(yīng)用的開發(fā)環(huán)境可以是相同的或者分離的。用于數(shù)據(jù)處理應(yīng)用的示例性開發(fā)環(huán)境是下述的基于圖的計(jì)算環(huán)境。
基于圖的計(jì)算環(huán)境允許程序員通過使用組件作為構(gòu)建塊來構(gòu)建基于圖的應(yīng)用?;趫D的應(yīng)用通常通過有向圖以及圖中的有向鏈接(或者“邊緣”)來表示,該有向圖在圖中具有表示組件(或者是數(shù)據(jù)存儲組件或者是可執(zhí)行計(jì)算組件)的節(jié)點(diǎn)(或者“頂點(diǎn)”),且有向鏈接表示組件之間的數(shù)據(jù)流。數(shù)據(jù)流圖(也簡稱為“圖”)是模塊化實(shí)體。每個(gè)圖可以由一個(gè)或多個(gè)其它圖組成,并且具體圖可以是更大圖中的組件。圖形開發(fā)環(huán)境(GDE)向開發(fā)人員提供用于開發(fā)、測試和部署應(yīng)用的用戶界面作為定制給給定用戶專用環(huán)境的可執(zhí)行圖形。圖2是表示數(shù)據(jù)處理應(yīng)用的數(shù)據(jù)流圖的示例。在圖2中,輸入數(shù)據(jù)集組件202包含特殊商品的狀態(tài)數(shù)據(jù)。該狀態(tài)數(shù)據(jù)是從倉庫、制造商和零售店拉拽的。計(jì)算組件204讀取輸入數(shù)據(jù)集組件202中包含的數(shù)據(jù),重新格式化它們,并且將它們饋送到下一計(jì)算組件 208。計(jì)算組件208分析重新格式化的數(shù)據(jù)并且生成將要存儲在輸出數(shù)據(jù)集組件210中的輸出數(shù)據(jù)。該輸出數(shù)據(jù)表示商品可用性。符號212是表示從輸入數(shù)據(jù)集組件202流出的數(shù)據(jù)元素(例如,記錄或其他數(shù)據(jù)單元)的源的輸出端口。符號214是表示流入計(jì)算組件208 的數(shù)據(jù)元素的目的地的輸入端口。鏈接206示出了數(shù)據(jù)流動(dòng)的方向,即,從計(jì)算組件204到計(jì)算組件208。由數(shù)據(jù)流圖200具體化的數(shù)據(jù)處理應(yīng)用可用于調(diào)用中心系統(tǒng)、例如圖IB中所示的調(diào)用中心系統(tǒng)120中。諸如圖200之類的數(shù)據(jù)流圖具體化了數(shù)據(jù)處理應(yīng)用的數(shù)據(jù)處理方面,諸如,像數(shù)據(jù)來自哪里、數(shù)據(jù)經(jīng)歷什么變換以及數(shù)據(jù)到達(dá)哪里那樣。作為比較,圖3示出了控制流圖300(也稱作“計(jì)劃(Plan)”)。控制流圖300表示了規(guī)定將要由各個(gè)功能模塊執(zhí)行的任務(wù)的任務(wù)管理應(yīng)用的規(guī)范。功能模塊可以執(zhí)行包括例如一系列將要在計(jì)算機(jī)系統(tǒng)上執(zhí)行的動(dòng)作的任務(wù)。可以使用數(shù)據(jù)流圖來實(shí)現(xiàn)功能模塊或者功能模塊可以表示另一控制流圖(稱作“子計(jì)劃(SubPlan) ”)。功能模塊可以是條件邏輯、或者程序、或者用戶腳本的實(shí)現(xiàn)。在控制流圖300中,諸如人口統(tǒng)計(jì)圖302、郵遞圖306、 頂級客戶圖310和底層客戶圖314之類的功能模塊是數(shù)據(jù)流圖。負(fù)載交易程序304是包括例如以Python或Perl的腳本的可執(zhí)行代碼的功能模塊。分發(fā)郵件條件任務(wù)308是條件邏輯的實(shí)現(xiàn),取決于特定客戶是被分類為頂級客戶還是底層客戶或者是需要授信(credit extension)的客戶而將控制引導(dǎo)到頂級客戶圖310、或者信用子計(jì)劃312、或者底層客戶圖314。信用子計(jì)劃312和費(fèi)用子計(jì)劃316自身是控制流圖。用箭頭鏈接322、3M等來連接功能模塊。箭頭鏈接規(guī)定由功能模塊執(zhí)行的任務(wù)之間的從屬關(guān)系,由此指示控制如何從一個(gè)功能模塊流向另一個(gè)功能模塊并且定義功能模塊根據(jù)其來運(yùn)行的至少部分排序。例如,人口統(tǒng)計(jì)圖302是在郵遞圖306之前運(yùn)行的。諸如圖300的控制流圖體現(xiàn)了由控制流圖控制的任務(wù)管理應(yīng)用的控制方面。任務(wù)管理應(yīng)用的控制方面包括例如確定不同任務(wù)之間的運(yùn)行順序并且應(yīng)用條件邏輯。如上所述,復(fù)雜數(shù)據(jù)處理系統(tǒng)可能必須管理大量數(shù)據(jù)并且執(zhí)行許多計(jì)算。在復(fù)雜數(shù)據(jù)處理系統(tǒng)中,可以使用任務(wù)管理應(yīng)用和數(shù)據(jù)處理應(yīng)用兩者。例如,在圖IB中所示的調(diào)用中心系統(tǒng)120中,客戶交易數(shù)據(jù)流向系統(tǒng)并且使用實(shí)時(shí)處理來對其處理。如果僅需要一步處理來處理數(shù)據(jù),諸如在數(shù)據(jù)庫中將數(shù)據(jù)登記為條目, 則由諸如數(shù)據(jù)流圖200之類的數(shù)據(jù)流圖表示的簡單應(yīng)用可能就足夠了。然而,在許多情況下,可能需要多步處理。例如,在大的零售商業(yè)中,可能同時(shí)發(fā)生數(shù)千起客戶交易??赡苄枰⑿刑幚怼;蛘咴诰C合零售商業(yè)中,客戶可能愿意被差別對待。因此可以實(shí)現(xiàn)條件邏輯來處理不同類別的客戶?;蛘?,在可靠的調(diào)用中心系統(tǒng)中,可以使用異常處理(exception handling)、故障轉(zhuǎn)移(failover)和數(shù)據(jù)清理。因此可能需要故障處理。當(dāng)數(shù)據(jù)處理是涉及并行處理、條件邏輯和/或故障處理的多步處理時(shí),簡單的數(shù)據(jù)流圖可能并非捕獲多步處理的復(fù)雜性的最佳方案。在處理期間在某一階段將數(shù)據(jù)流轉(zhuǎn)換為控制流可能是有利的。例如,諸如圖IB中所示的調(diào)用中心系統(tǒng)120之類的復(fù)雜數(shù)據(jù)處理系統(tǒng)可以使用數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用兩者。首先在數(shù)據(jù)處理應(yīng)用中處理輸入數(shù)據(jù)。隨后在任務(wù)管理應(yīng)用中使用該數(shù)據(jù)來驅(qū)動(dòng)控制流。對于開發(fā)復(fù)雜數(shù)據(jù)處理系統(tǒng)的應(yīng)用的開發(fā)人員來說,例如當(dāng)輸入數(shù)據(jù)是流化的、連續(xù)的且不可預(yù)測的時(shí),或者當(dāng)可能需要同時(shí)數(shù)據(jù)處理時(shí),可以使用使得數(shù)據(jù)流驅(qū)動(dòng)控制流的技術(shù)。圖4中圖示了該技術(shù)的示例。在圖4中,數(shù)據(jù)處理應(yīng)用(例如圖IB中所示的調(diào)用中心系統(tǒng)120)接收來自各個(gè)外部源的輸入數(shù)據(jù)(例如倉庫數(shù)據(jù)402、制造數(shù)據(jù)404和零售店銷售數(shù)據(jù)406)的流。當(dāng)在該示例中由數(shù)據(jù)流圖410實(shí)現(xiàn)的、輸入數(shù)據(jù)流入數(shù)據(jù)處理應(yīng)用中時(shí),圖410中的一個(gè)組件將來自不同源的數(shù)據(jù)重新格式化為適當(dāng)?shù)母袷?。圖410中的另一組件然后存儲該數(shù)據(jù)并且生成將被發(fā)送到任務(wù)管理應(yīng)用450的消息。數(shù)據(jù)處理應(yīng)用所生成的消息基于接收到的輸入數(shù)據(jù)或者在接收到的輸入數(shù)據(jù)中的元素,并且在一些實(shí)現(xiàn)中部分輸入數(shù)據(jù)可被用作消息??梢允褂貌煌臋C(jī)制將消息從數(shù)據(jù)處理應(yīng)用410發(fā)送到任務(wù)管理應(yīng)用450,例如, 消息傳送、隊(duì)列、共享存儲器空間、遠(yuǎn)程過程調(diào)用。任務(wù)管理應(yīng)用450基于消息或者在消息中包含的某些值,可以援用(invoke)不同的處理,例如執(zhí)行計(jì)劃442、子計(jì)劃444和/或數(shù)據(jù)流圖446的處理。在一些情況下,對于從數(shù)據(jù)處理應(yīng)用410接收到的每個(gè)輸入消息,任務(wù)管理應(yīng)用 450援用一個(gè)或多個(gè)任務(wù)(例如計(jì)劃442、子計(jì)劃444或數(shù)據(jù)流圖446)的相應(yīng)集合的分離迭代。因此如果響應(yīng)于作為數(shù)據(jù)處理應(yīng)用410的輸出而生成的數(shù)據(jù)元素來生成每個(gè)消息, 則應(yīng)用450能夠針對每個(gè)數(shù)據(jù)元素進(jìn)行迭代。循環(huán)索引針對任務(wù)管理應(yīng)用450的每次迭代而遞增。在每次循環(huán)迭代中,與當(dāng)前循環(huán)索引相關(guān)聯(lián)的處理被分拆(spin off)以處理輸入消息。取決于任務(wù)管理應(yīng)用450接收到的消息或者在消息中包含的值,被分拆來處理輸入消息的該處理可以執(zhí)行數(shù)據(jù)流圖、或者子計(jì)劃、或者用于執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的任何程序。在圖示的示例中,對于數(shù)據(jù)處理應(yīng)用410處理的輸入倉庫數(shù)據(jù)402的第一元素,消息422由數(shù)據(jù)處理應(yīng)用410生成并且被發(fā)送到任務(wù)管理應(yīng)用450。任務(wù)管理應(yīng)用450開始它的第一循環(huán)迭代(具有循環(huán)索引0),分拆為子處理452以便處理消息442。處理452對應(yīng)于任務(wù)管理應(yīng)用450召用的計(jì)劃442,以便減少可用商品的數(shù)量。子處理妨4在與任務(wù)管理應(yīng)用450的循環(huán)索引1相關(guān)聯(lián)的第二循環(huán)迭代中啟動(dòng),以便處理響應(yīng)于制造數(shù)據(jù)404而生成的輸入數(shù)據(jù)的第二元素。子處理妨4可以對應(yīng)于子計(jì)劃444,其例如執(zhí)行增加可用商品的數(shù)量的任務(wù)。子處理456在與循環(huán)索引2相關(guān)聯(lián)的第三循環(huán)迭代中啟動(dòng),以便處理響應(yīng)于零售店銷售數(shù)據(jù)406而生成的輸入數(shù)據(jù)的第三元素。子處理456可以對應(yīng)于執(zhí)行數(shù)據(jù)流圖446。任務(wù)管理應(yīng)用可被配置成同時(shí)或連續(xù)地援用處理452、妨4和456。處理可以是指在不同的CPU上或者在同一 CPU上運(yùn)行的處理。在后一種情況下,
8處理也可以稱作“線程(thread)”。為了增加可靠性,任務(wù)管理應(yīng)用450可被配置成當(dāng)它接收到消息時(shí)向數(shù)據(jù)處理應(yīng)用410發(fā)送確認(rèn)。如果任務(wù)管理應(yīng)用判定接收到的消息是完整無損的,則該確認(rèn)可以是肯定確認(rèn),或者如果任務(wù)管理應(yīng)用判定接收到的消息是受損的,則該確認(rèn)可以是否定確認(rèn)。數(shù)據(jù)處理應(yīng)用410可被配置成等待在發(fā)送下一消息之前已經(jīng)接收到上一發(fā)送的消息的確認(rèn)。它可被進(jìn)一步配置成當(dāng)接收到肯定確認(rèn)時(shí)發(fā)送下一消息并且當(dāng)接收到否定確認(rèn)是重發(fā)上一消息。圖5是應(yīng)用開發(fā)和執(zhí)行系統(tǒng)500的方框圖。系統(tǒng)500包括兩個(gè)圖形開發(fā)環(huán)境,⑶E 512用于數(shù)據(jù)流圖開發(fā),且GDE 514用于控制流開發(fā)??商鎿Q地,可以使用一個(gè)圖形開發(fā)環(huán)境開發(fā)數(shù)據(jù)流圖和控制流圖兩者?;蛘?,圖形開發(fā)環(huán)境可被用來開發(fā)控制流圖,并且命令行用戶界面可被用于數(shù)據(jù)流圖,或者反之亦然。使用⑶E 512,構(gòu)建包括數(shù)據(jù)流圖580的數(shù)據(jù)處理應(yīng)用518。使用⑶E514,構(gòu)建包括控制流圖550的任務(wù)管理應(yīng)用516。系統(tǒng)500也包括數(shù)據(jù)庫520。數(shù)據(jù)庫520可以是可擴(kuò)展(scalable)的面向?qū)ο髷?shù)據(jù)庫系統(tǒng),其向系統(tǒng)500提供各種類型的信息(例如元數(shù)據(jù))的存儲。數(shù)據(jù)庫520可以是例如企業(yè)元數(shù)據(jù)數(shù)據(jù)庫,其可以支持基于圖的應(yīng)用的開發(fā)和執(zhí)行以及基于圖的應(yīng)用與例如操作系統(tǒng)的其他系統(tǒng)之間的數(shù)據(jù)交換。系統(tǒng)500進(jìn)一步包括操作系統(tǒng)524。操作系統(tǒng)5 可以是例如并行操作環(huán)境。操作系統(tǒng)5M對于運(yùn)行應(yīng)用開發(fā)環(huán)境、例如⑶E 512和⑶E 514提供支持,并且提供已開發(fā)應(yīng)用的可擴(kuò)展的并行和分布式執(zhí)行。在圖5中,當(dāng)數(shù)據(jù)正由數(shù)據(jù)處理應(yīng)用518處理時(shí),輸入數(shù)據(jù)流530經(jīng)過數(shù)據(jù)流圖 580。數(shù)據(jù)流圖580包括計(jì)算組件、重新格式化584。在數(shù)據(jù)流圖580中,數(shù)據(jù)從輸入數(shù)據(jù)集 582流向輸出數(shù)據(jù)集586。在被重新格式化之后,數(shù)據(jù)從數(shù)據(jù)處理應(yīng)用518流出并且流入任務(wù)管理應(yīng)用516, 并且被用來驅(qū)動(dòng)由控制流圖550驅(qū)動(dòng)的任務(wù)管理應(yīng)用516??刂屏鲌D550示出了兩個(gè)任務(wù), 任務(wù)552和任務(wù)554。任務(wù)可以是例如通過執(zhí)行數(shù)據(jù)流圖或腳本(例如Perl腳本)來執(zhí)行的計(jì)算。時(shí)間順序556示出了在控制流圖550中規(guī)定的任務(wù)的運(yùn)行順序。在這種情況下, 任務(wù)552在任務(wù)5M之前執(zhí)行。如圖5所示,控制流圖550中的任務(wù)552是Perl腳本,并且控制流圖中的任務(wù)5M 自身是子任務(wù)的控制流圖。任務(wù)5M包括由可以在操作系統(tǒng)5M中執(zhí)行的方法實(shí)現(xiàn)的幾個(gè)子任務(wù)。這些方法可以是系統(tǒng)提供的現(xiàn)有方法或由用戶開發(fā)的定制方法。如圖5中所示, 例如,任務(wù)545包括五個(gè)方法觸發(fā)(Trigger)、開始(At Mart)、執(zhí)行(Perform)、失敗(At Failure)和成功(At Success)。這些方法可以通過系統(tǒng)來提供或者可以由客戶開發(fā)。在一些示例中,可以如下實(shí)現(xiàn)上面五個(gè)方法。方法“觸發(fā)”可被實(shí)現(xiàn)為表示任務(wù)554的開始點(diǎn)。它可以包含用于開始執(zhí)行的條件。該條件可以是是否存在指定文件或者標(biāo)記是否已被設(shè)置為真(true)。方法“開始”可被實(shí)現(xiàn)為系統(tǒng)準(zhǔn)備方法“執(zhí)行”的方法,例如將環(huán)境變量設(shè)置為期望值,或者建立日志文件以便將運(yùn)行時(shí)間信息記入日志。方法“執(zhí)行”可被實(shí)現(xiàn)為執(zhí)行任務(wù)554的主功能。任務(wù)5M也可以包括條件邏輯來處理在方法“執(zhí)行”之后發(fā)生的事情。如果方法“執(zhí)行”在其執(zhí)行期間成功,則執(zhí)行方法 “成功”以便利用為零的返回代碼來退出任務(wù)陽4。如果方法“執(zhí)行”在其執(zhí)行期間失敗, 則執(zhí)行方法“失敗”以便利用為非零的返回代碼來退出任務(wù)554??蛇x地,可以對于回滾 (rollback)、錯(cuò)誤處理和恢復(fù)添加附加的方法。例如,可以添加回滾的方法以便從失敗點(diǎn)開始以逆執(zhí)行順序來回滾已經(jīng)完成的事情??商鎿Q地,可以添加清理(cleanup)的方法以便通過重置標(biāo)記、寄存器等等來清理失敗的條件。為了處理迭代輸入數(shù)據(jù),可以使用循環(huán)SubPlan (子計(jì)劃)。在一些實(shí)現(xiàn)中,任務(wù)管理應(yīng)用被配置成包括循環(huán)SubPlan。如圖6中所示,控制流圖602是循環(huán)SubPlan的示例, 并且具有為處理輸入數(shù)據(jù)元素而實(shí)現(xiàn)的條件邏輯。為了處理輸入數(shù)據(jù)流,迭代地運(yùn)行控制流圖602。屏幕截圖604是示出如何通過將預(yù)定屬性設(shè)置為“循環(huán)”以及通過設(shè)置適當(dāng)?shù)难h(huán)屬性來將簡單應(yīng)用(在該示例中被稱作“My_Subplan”)配置為循環(huán)SubPlan的示例。循環(huán)屬性包括循環(huán)類型(D0-While,F(xiàn)0r-Each等)、循環(huán)值矢量、循環(huán)并存條件、循環(huán)計(jì)數(shù)和循環(huán)索引等等。作為示例,圖7A和圖7B展示了如何構(gòu)造包括任務(wù)管理應(yīng)用和數(shù)據(jù)處理應(yīng)用的系統(tǒng)來處理迭代輸入數(shù)據(jù)。假設(shè)我們具有涉及處理連續(xù)且不可預(yù)測地到達(dá)的客戶交易的商業(yè)。開發(fā)人員可以構(gòu)造數(shù)據(jù)處理應(yīng)用702來處理數(shù)據(jù)格式化和其他準(zhǔn)備工作,并且可以構(gòu)造任務(wù)管理應(yīng)用 704來執(zhí)行進(jìn)一步處理數(shù)據(jù)的任務(wù)。在已經(jīng)構(gòu)造了數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用之后,數(shù)據(jù)處理應(yīng)用可被配置成將數(shù)據(jù)傳送到任務(wù)管理應(yīng)用,并且任務(wù)管理應(yīng)用可被配置成監(jiān)聽來自數(shù)據(jù)處理應(yīng)用的消息。在一些實(shí)現(xiàn)中,在數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用之間傳送的消息可以包括由數(shù)據(jù)處理應(yīng)用輸出(例如,在消息中封裝和/或加密)的數(shù)據(jù)。在一些實(shí)現(xiàn)中,在數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用之間傳送的消息可以響應(yīng)于來自數(shù)據(jù)處理應(yīng)用的數(shù)據(jù)而生成,但無需包括輸出數(shù)據(jù)自身。因此,術(shù)語“消息”可以是指以任何形式或格式的在數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用之間傳送的信息。在任務(wù)管理側(cè),任務(wù)管理應(yīng)用704包括連續(xù)地監(jiān)聽來自數(shù)據(jù)處理應(yīng)用702的消息的一個(gè)或多個(gè)任務(wù)(例如SubPlan)的循環(huán)集合。符號706是指示應(yīng)用正在迭代運(yùn)行的符號。到達(dá)任務(wù)管理應(yīng)用704的消息觸發(fā)新的循環(huán)迭代,其中可以分拆一個(gè)處理。任務(wù)管理應(yīng)用704可被配置成在開始新循環(huán)迭代之前等待直到最后一個(gè)循環(huán)迭代完成為止或者被配置成當(dāng)接收到消息時(shí)立即開始新的迭代。在后一種情況下,處理在每次迭代同時(shí)運(yùn)行以外拆分。在數(shù)據(jù)處理側(cè),用戶可以配置消息發(fā)送應(yīng)用(例如數(shù)據(jù)流圖)來與對方監(jiān)聽?wèi)?yīng)用 “交談”,該對方監(jiān)聽?wèi)?yīng)用在這種情況下是任務(wù)管理應(yīng)用704。在一些實(shí)現(xiàn)中,消息發(fā)送應(yīng)用定義保持對方監(jiān)聽?wèi)?yīng)用的名稱的參數(shù),從而消息發(fā)送應(yīng)用知道向哪里發(fā)送消息。如前所提到的,具有分離的數(shù)據(jù)處理應(yīng)用和任務(wù)管理應(yīng)用提供重用軟件的優(yōu)勢。 然而,當(dāng)任務(wù)管理應(yīng)用、即對方監(jiān)聽?wèi)?yīng)用已被新的任務(wù)管理應(yīng)用代替時(shí),保持對方監(jiān)聽?wèi)?yīng)用的名稱的消息發(fā)送應(yīng)用中的參數(shù)需要被相應(yīng)地更新。用戶可能需要打開消息發(fā)送應(yīng)用并且做出所要求的改變。為了避免每次任務(wù)管理應(yīng)用已被新應(yīng)用代替時(shí)需要打開消息發(fā)送應(yīng)用,可以使得參數(shù)Name_0f_LiStening_Applicati0n (監(jiān)聽?wèi)?yīng)用的名稱)對于消息發(fā)送應(yīng)用和任何對方監(jiān)聽?wèi)?yīng)用來說是可見的。在監(jiān)聽?wèi)?yīng)用中,參數(shù)Name_of_Listening_Application被分配監(jiān)聽?wèi)?yīng)用的名稱的值。因?yàn)樵搮?shù)對于消息發(fā)送應(yīng)用來說也是可見的,因此消息發(fā)送應(yīng)用可以讀取參數(shù)Name_0f_LiStening_Applicati0n的值以便找出認(rèn)為向其發(fā)送消息的應(yīng)用。這樣,甚至在運(yùn)行時(shí)間也能夠改變監(jiān)聽?wèi)?yīng)用,而不需要打開消息發(fā)送應(yīng)用來用于更新。在一些實(shí)現(xiàn)中,監(jiān)聽?wèi)?yīng)用將接收到的消息存儲在參數(shù)中。處理的參數(shù)定義用于那個(gè)處理的系統(tǒng)設(shè)置。在一些情況下,父處理的參數(shù)可以被繼承,并且因此對于它的子處理來說是可見的。例如,圖7A中的參數(shù)720用于存儲從數(shù)據(jù)處理應(yīng)用702發(fā)送到任務(wù)管理應(yīng)用 704的消息??蛇x地,用戶可以在任務(wù)管理側(cè)構(gòu)造程序或方法以便剔除消息發(fā)送應(yīng)用,如圖7B 中所示。在圖7B中,任務(wù)管理應(yīng)用722( —個(gè)計(jì)劃(Plan))包括監(jiān)聽程序704,其自身是任務(wù)管理應(yīng)用(一個(gè)子計(jì)劃(SubPlan)),用于監(jiān)聽消息;和啟動(dòng)程序726,啟動(dòng)消息發(fā)送數(shù)據(jù)處理應(yīng)用702的執(zhí)行,如箭頭730所示。圖7B也示出數(shù)據(jù)處理應(yīng)用702包括兩個(gè)數(shù)據(jù)處理應(yīng)用732和734以及隊(duì)列736。 數(shù)據(jù)處理應(yīng)用732首先對輸入數(shù)據(jù)執(zhí)行復(fù)雜處理。然后它移交數(shù)據(jù),從而數(shù)據(jù)得以向隊(duì)列 736公布。數(shù)據(jù)處理應(yīng)用734從隊(duì)列736中檢索數(shù)據(jù),重新格式化它們,并且通過發(fā)送將被存儲在預(yù)定位置的消息將它們公布給任務(wù)管理應(yīng)用704。此處,隊(duì)列736正充當(dāng)流向數(shù)據(jù)處理應(yīng)用732的輸入數(shù)據(jù)與流出數(shù)據(jù)處理應(yīng)用734的流出數(shù)據(jù)之間的緩沖器。這樣,數(shù)據(jù)處理應(yīng)用734可被配置成在送出下一消息之前等待先前發(fā)送的消息的確認(rèn),而不阻擋數(shù)據(jù)處理應(yīng)用732處理連續(xù)且不可預(yù)測地流化的輸入數(shù)據(jù)。而且,因?yàn)閺闹腥コ瞬糠謴?fù)雜處理, 因此數(shù)據(jù)處理應(yīng)用734被保持得簡單而輕便。當(dāng)任務(wù)管理應(yīng)用722開始運(yùn)行時(shí),啟動(dòng)程序7 啟動(dòng)數(shù)據(jù)處理應(yīng)用732和734。同時(shí),監(jiān)聽程序704開始監(jiān)聽來自消息發(fā)送數(shù)據(jù)處理應(yīng)用702的消息。在一些實(shí)現(xiàn)中,數(shù)據(jù)處理應(yīng)用732和734以及任務(wù)管理應(yīng)用722可被配置成在同一主機(jī)上運(yùn)行。數(shù)據(jù)處理應(yīng)用 732和734以及任務(wù)管理應(yīng)用722也可以包括各種錯(cuò)誤處理方法,例如用于使得消息發(fā)送耐故障的回滾、恢復(fù)、清理以及確認(rèn)和消息跟蹤,如圖8中所展示的。在圖8中,標(biāo)記為公布方的消息發(fā)送應(yīng)用802可以是如圖7A中所示的數(shù)據(jù)處理應(yīng)用702或者如圖7B中所示的數(shù)據(jù)處理應(yīng)用734。標(biāo)記為用戶的接收應(yīng)用804可以是如圖 7A或圖7B中所示的任務(wù)管理應(yīng)用704。在圖8中,從公布方發(fā)送的消息被分配一個(gè)序列號。序列號幫助公布方跟蹤所發(fā)送的消息并且便于用戶確認(rèn)消息的接收。對于接收到的每個(gè)消息,用戶向公布方發(fā)送一個(gè)確認(rèn)。在該確認(rèn)中,用戶指明接收到的消息的序列號以及該消息是完整無損(肯定)還是受損(否定)。當(dāng)公布方發(fā)送具有序列號X的消息時(shí),它可以等待對該消息的確認(rèn)。當(dāng)它接收到包含序列號X的確認(rèn)時(shí),如果該確認(rèn)是肯定的,則它發(fā)送序列號X+1的下一個(gè)消息,或者如果確認(rèn)是否定的,則它重新發(fā)送序列號X的消息??商鎿Q地,公布方可以不等待先前發(fā)送的消息的確認(rèn)就發(fā)送消息。如果在某一時(shí)間段內(nèi)還沒有接收到確認(rèn),則公布方可以存儲未確認(rèn)的消息,并且重新發(fā)送該消息。用戶可被安排成忽略具有相同序列號的消息,從而接收重復(fù)的消息將不會造成問題。如果系統(tǒng)在某一點(diǎn)崩潰,則公布方可以在恢復(fù)時(shí)重新發(fā)送未確認(rèn)的消息。如果期望數(shù)據(jù)幸免于系統(tǒng)故障,則該未確認(rèn)的消息可被存儲在例如盤的永久性存儲器中。可以使用其他方法或技術(shù)來確保成功地發(fā)送每個(gè)消息。上述方案可以使用用于在計(jì)算機(jī)上執(zhí)行的軟件來實(shí)現(xiàn)。例如,該軟件形成在一個(gè)或多個(gè)已編程或可編程計(jì)算機(jī)系統(tǒng)上執(zhí)行的一個(gè)或多個(gè)計(jì)算機(jī)程序中的過程(其可以是各種各樣的架構(gòu),例如分布式、客戶機(jī)/服務(wù)器、或網(wǎng)格),每個(gè)已編程或可編程計(jì)算機(jī)系統(tǒng)包括至少一個(gè)處理器、至少一個(gè)數(shù)據(jù)存儲系統(tǒng)(包括易失性和非易失性存儲器和/或存儲元件)、至少一個(gè)輸入設(shè)備或端口、和至少一個(gè)輸出設(shè)備或端口。該軟件可以形成例如一個(gè)或多個(gè)更大程序模塊,其提供與計(jì)算圖形的設(shè)計(jì)和配置相關(guān)的其他服務(wù)。圖形的節(jié)點(diǎn)和元素可被實(shí)現(xiàn)為存儲在計(jì)算機(jī)可讀介質(zhì)中的數(shù)據(jù)結(jié)構(gòu)或者符合存儲在數(shù)據(jù)儲存庫中的數(shù)據(jù)模型的其他組織數(shù)據(jù)。該軟件可以被提供在由通用或?qū)S每删幊逃?jì)算機(jī)可讀的諸如⑶-ROM之類的存儲介質(zhì)上或者可以經(jīng)由網(wǎng)絡(luò)的通信介質(zhì)被傳遞(以傳播信號編碼)到它被執(zhí)行的計(jì)算機(jī)處。 全部功能都可以在專用計(jì)算機(jī)上執(zhí)行,或者使用專用硬件例如處理器來執(zhí)行。該軟件可以以其中通過不同計(jì)算機(jī)來執(zhí)行軟件規(guī)定的不同計(jì)算部分的分布式方式來實(shí)現(xiàn)。每個(gè)這種計(jì)算機(jī)程序優(yōu)選地被存儲在或者被下載到可由通用或?qū)S每删幊逃?jì)算機(jī)讀取的存儲媒體或設(shè)備(例如,固態(tài)存儲器或媒體,磁媒體或光媒體),用以當(dāng)該存儲媒體或設(shè)備被計(jì)算機(jī)系統(tǒng)讀取時(shí)配置和操作計(jì)算機(jī)以執(zhí)行此處描述的過程。本發(fā)明系統(tǒng)也可以被考慮來實(shí)現(xiàn)為利用計(jì)算機(jī)程序配置的計(jì)算機(jī)可讀存儲介質(zhì),其中如此配置的存儲介質(zhì)使得計(jì)算機(jī)系統(tǒng)以特定和預(yù)定的方式操作來執(zhí)行此處描述的功能。已經(jīng)描述了本發(fā)明的許多實(shí)施例。然而,將會理解,在不背離本發(fā)明的精神和范圍的情況下可以進(jìn)行各種各樣的修改。例如,上述的一些步驟可以是不受順序約束的,因此可以以不同于所描述的順序進(jìn)行。將會理解,前面的描述意欲是示意性的,且不限制本發(fā)明的范圍,由所附權(quán)利要求書的范圍來限定本發(fā)明的范圍。例如,在實(shí)質(zhì)上不影響整體處理的情況下可以以不同的順序來執(zhí)行上述的許多功能步驟。其他實(shí)施例在所附權(quán)利要求的范疇之內(nèi)。
權(quán)利要求
1.一種用于管理任務(wù)執(zhí)行的方法,所述方法包括接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范;使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流,生成消息流;和響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。
2.如權(quán)利要求1所述的方法,其中,至少一個(gè)功能模塊被配置成啟動(dòng)所述數(shù)據(jù)流圖的執(zhí)行。
3.如權(quán)利要求1所述的方法,其中,所述多個(gè)任務(wù)的規(guī)范規(guī)定所述至少兩個(gè)任務(wù)之間的從屬關(guān)系。
4.如權(quán)利要求3所述的方法,其中,所述至少兩個(gè)任務(wù)之間的從屬關(guān)系定義關(guān)于與所述任務(wù)對應(yīng)的功能模塊的執(zhí)行的至少部分排序。
5.如權(quán)利要求3所述的方法,其中,所述至少兩個(gè)任務(wù)之間的從屬關(guān)系定義用于確定至少一個(gè)功能模塊的執(zhí)行所基于的至少一個(gè)條件的條件邏輯。
6.如權(quán)利要求5所述的方法,其中,所述至少一個(gè)功能模塊包括故障處理模塊,當(dāng)所述條件邏輯檢測在其他功能模塊中的一個(gè)的執(zhí)行中已發(fā)生故障時(shí)執(zhí)行該故障處理模塊。
7.如權(quán)利要求1所述的方法,其中,響應(yīng)于消息流中的兩個(gè)或更多消息而同時(shí)執(zhí)行一個(gè)或多個(gè)任務(wù)的給定集合的多次迭代。
8.如權(quán)利要求1所述的方法,其中,響應(yīng)于數(shù)據(jù)流中的數(shù)據(jù)元素而無需包括該數(shù)據(jù)元素,生成消息流中的一個(gè)或多個(gè)消息。
9.如權(quán)利要求1所述的方法,其中,消息流中的一個(gè)或多個(gè)消息包括數(shù)據(jù)流中的數(shù)據(jù)元素的至少一部分。
10.如權(quán)利要求1所述的方法,其中,至少一個(gè)功能模塊被配置成響應(yīng)于接收到消息流中的一個(gè)消息而發(fā)送確認(rèn)。
11.如權(quán)利要求10所述的方法,其中,至少一個(gè)數(shù)據(jù)處理組件重發(fā)未確認(rèn)的消息。
12.如權(quán)利要求1所述的方法,還包括存儲標(biāo)識多個(gè)任務(wù)的規(guī)范的參數(shù)值。
13.如權(quán)利要求12所述的方法,還包括將所生成的消息流發(fā)送到用于接收由參數(shù)值標(biāo)識的消息的應(yīng)用。
14.如權(quán)利要求13所述的方法,還包括以對用于執(zhí)行所述任務(wù)的多個(gè)處理可視的參數(shù)來存儲由所述應(yīng)用接收到的消息。
15.一種用于管理任務(wù)執(zhí)行的系統(tǒng),所述系統(tǒng)包括任務(wù)管理系統(tǒng),包括用于接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范的電路;和數(shù)據(jù)處理系統(tǒng),包括使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流的電路,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;其中,所述數(shù)據(jù)處理系統(tǒng)被配置成響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流來生成消息流;并且其中,所述任務(wù)管理系統(tǒng)被配置成響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。
16.一種用于管理任務(wù)執(zhí)行的系統(tǒng),所述系統(tǒng)包括用于接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范的部件;用于使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流的部件,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;其中,所述數(shù)據(jù)處理系統(tǒng)被配置成響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流來生成消息流;并且其中,所述任務(wù)管理系統(tǒng)被配置成響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。
17.一種存儲用于管理任務(wù)執(zhí)行的計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序包括使得計(jì)算機(jī)進(jìn)行以下步驟的指令接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)的規(guī)范;使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)流,所述數(shù)據(jù)流圖包括由鏈接連接的表示數(shù)據(jù)處理組件的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件提供的至少一個(gè)數(shù)據(jù)流,生成消息流;和響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)的集合的迭代。
全文摘要
管理任務(wù)執(zhí)行包括接收將由各個(gè)功能模塊執(zhí)行的多個(gè)任務(wù)(442、444、446)的規(guī)范;使用數(shù)據(jù)流圖來處理輸入數(shù)據(jù)(402、404、406)流,所述數(shù)據(jù)流圖包括表示由鏈接連接的數(shù)據(jù)處理組件(410)的節(jié)點(diǎn),所述鏈接表示數(shù)據(jù)處理組件之間的數(shù)據(jù)流;響應(yīng)于至少一個(gè)數(shù)據(jù)處理組件(410)提供的至少一個(gè)數(shù)據(jù)流,生成消息(422)流;和響應(yīng)于消息流中的每個(gè)消息,使用一個(gè)或多個(gè)相應(yīng)功能模塊來執(zhí)行一個(gè)或多個(gè)任務(wù)(442)的集合的迭代。
文檔編號G06F9/46GK102317911SQ201080007664
公開日2012年1月11日 申請日期2010年2月12日 優(yōu)先權(quán)日2009年2月13日
發(fā)明者M.巴克斯鮑姆, T.瓦克林 申請人:起元技術(shù)有限責(zé)任公司