1.一種用于處理基于圖的程序規(guī)范的方法,所述方法包括:
接收所述基于圖的程序規(guī)范,所述基于圖的程序規(guī)范包括:
多個(gè)組件,每個(gè)組件對應(yīng)于處理任務(wù)并且包括用于發(fā)送或接收一個(gè)或多個(gè)數(shù)據(jù)元素的一個(gè)或多個(gè)端口;以及
一個(gè)或多個(gè)鏈路,所述一個(gè)或多個(gè)鏈路中的每個(gè)鏈路將所述多個(gè)組件中的上游組件的輸出端口連接到所述多個(gè)組件中的下游組件的輸入端口;以及
處理所述基于圖的程序規(guī)范,以生成表示所述基于圖的程序規(guī)范的所述多個(gè)組件的子集的準(zhǔn)備好的代碼,所述處理包括:
至少部分地基于鏈接的組件的特性,在不同子集中識別組件之間的多個(gè)子集邊界;
基于所識別的子集邊界形成子集;以及
為每個(gè)形成的子集生成準(zhǔn)備好的代碼,當(dāng)用于運(yùn)行時(shí)系統(tǒng)執(zhí)行時(shí),所述準(zhǔn)備好的代碼使得根據(jù)為該形成的子集的準(zhǔn)備好的代碼中嵌入的信息來執(zhí)行與該形成的子集中的組件對應(yīng)的處理任務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其中形成子集包括:遍歷所述基于圖的程序規(guī)范的組件,同時(shí)保持所遍歷的子集邊界的記錄,以及將所述基于圖的程序規(guī)范的每個(gè)組件與從所遍歷的子集邊界的記錄中確定的單個(gè)子集標(biāo)識符相關(guān)聯(lián)。
3.根據(jù)權(quán)利要求2所述的方法,其中與所述多個(gè)組件的所識別的子集相關(guān)聯(lián)的每個(gè)子集標(biāo)識符是唯一的。
4.根據(jù)權(quán)利要求2所述的方法,其中所遍歷的子集邊界的記錄被維護(hù)為標(biāo)識符值的路徑。
5.根據(jù)權(quán)利要求4所述的方法,其中所述標(biāo)識符值的路徑包括通過分隔符彼此分隔的標(biāo)識符值的字符串。
6.根據(jù)權(quán)利要求1所述的方法,其中形成子集包括:
將所述基于圖的程序規(guī)范的第一組件與一子集標(biāo)識符相關(guān)聯(lián);
將該子集標(biāo)識符傳播到所述第一組件的下游的組件;以及
基于所識別的子集邊界,在該子集標(biāo)識符的傳播過程中修改該子集標(biāo)識符。
7.根據(jù)權(quán)利要求6所述的方法,其中在該子集標(biāo)識符的傳播過程中修改該子集標(biāo)識符包括:
在遍歷所述第一子集邊界時(shí),將該子集標(biāo)識符的值從第一子集標(biāo)識符值改變?yōu)榕c第一子集邊界相關(guān)聯(lián)的第二子集標(biāo)識符值;以及
在遍歷與所述第一子集邊界相關(guān)聯(lián)的第二子集邊界時(shí),將該子集標(biāo)識符的值改變?yōu)樗龅谝蛔蛹瘶?biāo)識符值。
8.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中至少部分地基于鏈接的組件的特性識別一個(gè)或多個(gè)子集邊界包括:基于上游組件上的第一類型的端口與下游組件上的第二類型的端口之間的鏈路來識別子集邊界。
9.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中至少部分地基于鏈接的組件的特性識別一個(gè)或多個(gè)子集邊界包括:基于上游組件與下游組件之間的確定類型的鏈路來識別子集邊界,其中所述確定類型的鏈路是組件之間多種不同類型的鏈路之一。
10.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中為每個(gè)形成的子集生成準(zhǔn)備好的代碼包括:對于至少一個(gè)形成的子集,將指示與該形成的子集中的組件對應(yīng)的處理任務(wù)之間的允許的并發(fā)性的信息嵌入到所述準(zhǔn)備好的代碼中。
11.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中為每個(gè)形成的子集生成準(zhǔn)備好的代碼包括:對于至少一個(gè)形成的子集,將指示相對于其它形成的子集的優(yōu)先級的信息嵌入到所述準(zhǔn)備好的代碼中。
12.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中為每個(gè)形成的子集生成準(zhǔn)備好的代碼包括:對于至少一個(gè)形成的子集,將指示與該形成的子集中的組件對應(yīng)的一個(gè)或多個(gè)處理任務(wù)的事務(wù)性的信息嵌入到所述準(zhǔn)備好的代碼中。
13.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中為每個(gè)形成的子集生成準(zhǔn)備好的代碼包括:對于至少一個(gè)形成的子集,將指示在所述準(zhǔn)備好的代碼的執(zhí)行過程中要鎖定的至少一個(gè)資源的信息嵌入到所述準(zhǔn)備好的代碼中。
14.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中為每個(gè)形成的子集生成準(zhǔn)備好的代碼包括:對于至少一個(gè)形成的子集,將指示與該形成的子集的組件對應(yīng)的一個(gè)或多個(gè)處理任務(wù)所處理的數(shù)據(jù)元素之間的排序特性的信息嵌入到所述準(zhǔn)備好的代碼中。
15.根據(jù)任一項(xiàng)前述權(quán)利要求所述的方法,其中為每個(gè)形成的子集生成準(zhǔn)備好的代碼包括:對于至少一個(gè)形成的子集,將指示使用所述準(zhǔn)備好的代碼執(zhí)行該形成的子集的每個(gè)實(shí)例所操作的數(shù)據(jù)元素的數(shù)量的信息嵌入到所述準(zhǔn)備好的代碼中。
16.一種以非暫時(shí)形式存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的軟件,用于處理基于圖的程序規(guī)范,所述軟件包括用于使得計(jì)算系統(tǒng)執(zhí)行以下操作的指令:
接收所述基于圖的程序規(guī)范,所述基于圖的程序規(guī)范包括:
多個(gè)組件,每個(gè)組件對應(yīng)于處理任務(wù)并且包括用于發(fā)送或接收一個(gè)或多個(gè)數(shù)據(jù)元素的一個(gè)或多個(gè)端口;以及
一個(gè)或多個(gè)鏈路,所述一個(gè)或多個(gè)鏈路中的每個(gè)鏈路將所述多個(gè)組件中的上游組件的輸出端口連接到所述多個(gè)組件中的下游組件的輸入端口;以及
處理所述基于圖的程序規(guī)范,以生成表示所述基于圖的程序規(guī)范的所述多個(gè)組件的子集的準(zhǔn)備好的代碼,所述處理包括:
至少部分地基于鏈接的組件的特性,在不同子集中識別組件之間的多個(gè)子集邊界;
基于所識別的子集邊界形成子集;以及
為每個(gè)形成的子集生成準(zhǔn)備好的代碼,當(dāng)用于運(yùn)行時(shí)系統(tǒng)執(zhí)行時(shí),所述準(zhǔn)備好的代碼使得根據(jù)為該形成的子集的準(zhǔn)備好的代碼中嵌入的信息來執(zhí)行與該形成的子集中的組件對應(yīng)的處理任務(wù)。
17.一種用于處理基于圖的程序規(guī)范的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括:
至少一個(gè)輸入設(shè)備或端口,被配置為接收所述基于圖的程序規(guī)范,所述基于圖的程序規(guī)范包括:
多個(gè)組件,每個(gè)組件對應(yīng)于處理任務(wù)并且包括用于發(fā)送或接收一個(gè)或多個(gè)數(shù)據(jù)元素的一個(gè)或多個(gè)端口;以及
一個(gè)或多個(gè)鏈路,所述一個(gè)或多個(gè)鏈路中的每個(gè)鏈路將所述多個(gè)組件中的上游組件的輸出端口連接到所述多個(gè)組件中的下游組件的輸入端口;以及
至少一個(gè)處理器,被配置為處理所述基于圖的程序規(guī)范,以生成表示所述基于圖的程序規(guī)范的所述多個(gè)組件的子集的準(zhǔn)備好的代碼,所述處理包括:
至少部分地基于鏈接的組件的特性,在不同子集中識別組件之間的多個(gè)子集邊界;
基于所識別的子集邊界形成子集;以及
為每個(gè)形成的子集生成準(zhǔn)備好的代碼,當(dāng)用于運(yùn)行時(shí)系統(tǒng)執(zhí)行時(shí),所述準(zhǔn)備好的代碼使得根據(jù)為該形成的子集的準(zhǔn)備好的代碼中嵌入的信息來執(zhí)行與該形成的子集中的組件對應(yīng)的處理任務(wù)。