本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種業(yè)務(wù)流聚合方法及裝置。
背景技術(shù):
SDN網(wǎng)絡(luò)(Software Defined Network,軟件定義網(wǎng)絡(luò))是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),可以實現(xiàn)網(wǎng)絡(luò)流量的靈活控制。在基于SDN的無線mesh(網(wǎng)狀)網(wǎng)絡(luò)中轉(zhuǎn)發(fā)到達交換機的業(yè)務(wù)流時,交換機會向控制器去請求轉(zhuǎn)發(fā)路徑,交換機根據(jù)控制器返回的轉(zhuǎn)發(fā)路徑來轉(zhuǎn)發(fā)業(yè)務(wù)流。但是,當業(yè)務(wù)流的請求較多時,會導致兩個問題,一是會導致控制器的控制開銷增大甚至停止工作;二是針對每個業(yè)務(wù)流分配轉(zhuǎn)發(fā)路徑,并根據(jù)分配的路徑轉(zhuǎn)發(fā)業(yè)務(wù)流,會增加網(wǎng)絡(luò)的轉(zhuǎn)發(fā)負擔。為了解決上述問題,現(xiàn)有技術(shù)中,通常是將到達的同源同目的業(yè)務(wù)流通過聚合方法進行聚合分類,得到業(yè)務(wù)流組,然后,向控制器請求業(yè)務(wù)流組的轉(zhuǎn)發(fā)路徑,再通過控制器所分配的轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)業(yè)務(wù)流組,從而實現(xiàn)業(yè)務(wù)流的轉(zhuǎn)發(fā)。其中,業(yè)務(wù)流聚合方法如分層聚合方法、模糊聚合方法、貪婪聚合方法、k-means聚合方法。
具體的,分層聚合方法主要針對預設(shè)時間段內(nèi)到達的同源同目的業(yè)務(wù)流,計算每個業(yè)務(wù)流的時延和丟包率等屬性值;將屬性值相似的業(yè)務(wù)流分成一組,并將每組內(nèi)的所有業(yè)務(wù)流聚合成一個業(yè)務(wù)流組。模糊聚合方法同樣是根據(jù)時延和丟包率等屬性值的相似性進行聚合的。通過這兩種方法獲得業(yè)務(wù)流組,組內(nèi)業(yè)務(wù)流的時延和丟包率等屬性值相似,后續(xù)容易為業(yè)務(wù)流組找到符合組內(nèi)每個業(yè)務(wù)流的時延和丟包率等屬性值要求的路徑。但是,業(yè)務(wù)流組內(nèi)所有業(yè)務(wù)流的業(yè)務(wù)量總和可能會很大,容易造成無法為業(yè)務(wù)流組找到符合帶寬要求的路徑。
參照圖1,圖1為現(xiàn)有技術(shù)中k-means聚合方法的流程示意圖,k-means聚合方法包括以下步驟:
S101、針對預設(shè)時間段內(nèi)到達的同源同目的業(yè)務(wù)流,計算每個業(yè)務(wù)流的業(yè)務(wù)量;
S102、將任意預設(shè)數(shù)量個業(yè)務(wù)流的業(yè)務(wù)量,一一對應地確定為預設(shè)數(shù)量個簇心對應的業(yè)務(wù)量;
S103、根據(jù)每個業(yè)務(wù)流的業(yè)務(wù)量,以及每個簇心對應的業(yè)務(wù)量,計算每個業(yè)務(wù)流到達每個簇心的距離;
S104、確定每個業(yè)務(wù)流對應的最小距離,將最小距離對應同一簇心的業(yè)務(wù)流聚合成一個過渡業(yè)務(wù)流組;
S105、計算每個過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量的平均值,將每個簇心對應的業(yè)務(wù)量對應更新為業(yè)務(wù)量的平均值,返回S103,直至每個簇心對應的業(yè)務(wù)量收斂;
S106、在確定每個簇心對應的業(yè)務(wù)量收斂后,針對每個過渡業(yè)務(wù)流組,將該過渡業(yè)務(wù)流組內(nèi)所有業(yè)務(wù)流聚合成一個業(yè)務(wù)流組。
通過k-means聚合方法聚合得到的業(yè)務(wù)流組,組內(nèi)的業(yè)務(wù)流業(yè)務(wù)量相似,但是,組內(nèi)的所有業(yè)務(wù)流的業(yè)務(wù)量總和可能很大,造成無法為業(yè)務(wù)流組找到符合帶寬要求的路徑。
貪婪聚合方法:首先計算業(yè)務(wù)流的業(yè)務(wù)量,并按照業(yè)務(wù)量從大到小排序,再依次將業(yè)務(wù)量總和接近且小于預設(shè)閾值的業(yè)務(wù)流聚合成一個業(yè)務(wù)流組。通過貪婪聚合方法聚合得到的業(yè)務(wù)流組,組內(nèi)的所有業(yè)務(wù)流的業(yè)務(wù)量總和都小于預設(shè)閾值,使得后續(xù)容易為業(yè)務(wù)流組找到符合帶寬要求的路徑。但是,組內(nèi)的業(yè)務(wù)流的時延或丟包率可能不相似,后續(xù)難以為業(yè)務(wù)流組找到滿足組內(nèi)每個業(yè)務(wù)流的時延或丟包率等屬性值要求的路徑。
可見,現(xiàn)有技術(shù)中將預設(shè)時間段內(nèi)的同源同目的的業(yè)務(wù)流聚合的方法無法同時保證帶寬要求和屬性相似性要求,會導致部分聚合無效。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種業(yè)務(wù)流聚合方法及裝置,以同時保證帶寬要求和屬性相似性要求,從而提高聚合的有效性。具體技術(shù)方案如下:
第一方面,本發(fā)明實施例提供的一種業(yè)務(wù)流聚合方法,包括:
針對預設(shè)時間段內(nèi)到達的同源同目的的業(yè)務(wù)流,計算每個業(yè)務(wù)流的預設(shè)屬性值和業(yè)務(wù)量;
將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到至少一個預分業(yè)務(wù)流組,其中,所述預設(shè)屬性值相似是指預設(shè)屬性值符合預定相似條件;
分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組,其中,任一目標業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值。
可選的,所述預設(shè)屬性值為由多個子預設(shè)屬性值組成的多維屬性值;
所述將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到至少一個預分業(yè)務(wù)流組的步驟,包括:
初始化多個目標簇心,得到每個目標簇心對應的預設(shè)屬性值;
根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離;
確定每個業(yè)務(wù)流對應的最小距離,將最小距離對應同一目標簇心的業(yè)務(wù)流分成一組,得到至少一個過渡業(yè)務(wù)流組;
針對每個過渡業(yè)務(wù)流組,將該過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的每個維度的最小子預設(shè)屬性值,按照對應維度組合成過渡預設(shè)屬性值;
以每個過渡業(yè)務(wù)流組的過渡預設(shè)屬性值更新相應目標簇心對應的預設(shè)屬性值,返回所述根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離的步驟,直至每個目標簇心對應的預設(shè)屬性值收斂;
在確定每個目標簇心對應的預設(shè)屬性值收斂后,將過渡業(yè)務(wù)流組確定為預分業(yè)務(wù)流組。
可選的,所述初始化多個目標簇心,得到每個目標簇心對應預設(shè)屬性值的步驟,包括:
根據(jù)預設(shè)公式計算多個目標預設(shè)屬性值的每一維度的目標子預設(shè)屬性值,獲得對應數(shù)量個目標預設(shè)屬性值:
將每個目標預設(shè)屬性值,確定為一個目標簇心對應的預設(shè)屬性值;
其中,所述預設(shè)公式為:
其中,i表示目標預設(shè)屬性值的序號,j表示維度序號,表示i個目標預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最小值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最大值,k表示預設(shè)的目標預設(shè)屬性值的數(shù)量。
可選的,所述根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離的步驟,包括:
根據(jù)以下公式計算每個業(yè)務(wù)流到每個目標簇心的距離:
其中,h表示業(yè)務(wù)流的序號,i表示目標簇心的序號,表示第h個業(yè)務(wù)流到第i個目標簇心的距離;j表示維度序號,表示第h個業(yè)務(wù)流的預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示第i個目標簇心對應的預設(shè)屬性值的第j維度的子預設(shè)屬性值,m表示所述預設(shè)屬性值的維度的數(shù)量。
可選的,所述分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟,包括:
針對每個預分業(yè)務(wù)流組,計算該預分業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和;
根據(jù)每個預分業(yè)務(wù)流組的業(yè)務(wù)量總和以及所述預設(shè)閾值,確定每個預分業(yè)務(wù)流組待聚合出的目標業(yè)務(wù)流組的數(shù)量;
從每個的預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
可選的,所述從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟,包括:
針對每個預分業(yè)務(wù)流組,執(zhí)行以下步驟:
按照本組中業(yè)務(wù)流的業(yè)務(wù)量大小,將本組中的業(yè)務(wù)流排序;
按照排序得到的順序,確定出業(yè)務(wù)量總和最接近且不大于所述預設(shè)閾值的未聚合的業(yè)務(wù)流;
判斷其余未聚合的業(yè)務(wù)流中,是否存在至少一個業(yè)務(wù)流,使得所確定的業(yè)務(wù)流與存在的至少一個業(yè)務(wù)流的業(yè)務(wù)量總和等于所述預設(shè)閾值;
如果存在,將所確定的業(yè)務(wù)流與存在的至少一個業(yè)務(wù)流聚合成目標業(yè)務(wù)流組,否則,將所確定的業(yè)務(wù)流聚合成目標業(yè)務(wù)流組;
返回按照排序得到的順序,確定出業(yè)務(wù)量總和最接近且不大于所述預設(shè)閾值的未聚合的業(yè)務(wù)流的步驟,直到聚合出該預分業(yè)務(wù)流組對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
可選的,所述方法還包括:
計算每個預分業(yè)務(wù)流組對應的目標簇心到預設(shè)原點簇心的距離;
按照所計算的距離的大小,將每個預設(shè)業(yè)務(wù)流組排序;
在所述從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟之后,優(yōu)先按照預分業(yè)務(wù)流組的排序順序,再按照每個預分業(yè)務(wù)流組中業(yè)務(wù)流的排序順序,依次將業(yè)務(wù)量總和最接近且不大于所述預設(shè)閾值的未聚合的業(yè)務(wù)流,聚合成一個待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
第二方面,本發(fā)明實施例提供的一種業(yè)務(wù)流聚合裝置,包括:
第一計算模塊,用于針對預設(shè)時間段內(nèi)到達的同源同目的的業(yè)務(wù)流,計算每個業(yè)務(wù)流的預設(shè)屬性值和業(yè)務(wù)量;
預分組模塊,用于將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到至少一個預分業(yè)務(wù)流組,其中,所述預設(shè)屬性值相似是指預設(shè)屬性值符合預定相似條件;
第一聚合模塊,用于分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組,其中,任一目標業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值。
可選的,所述預設(shè)屬性值為由多個子預設(shè)屬性值組成的多維屬性值;
所述預分組模塊,包括:
初始化子模塊,用于初始化多個目標簇心,得到每個目標簇心對應的預設(shè)屬性值;
第一計算子模塊,用于根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離;
預分組子模塊,用于確定每個業(yè)務(wù)流對應的最小距離,將最小距離對應同一目標簇心的業(yè)務(wù)流分成一組,得到至少一個過渡業(yè)務(wù)流組;
組合子模塊,用于針對每個過渡業(yè)務(wù)流組,將該過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的每個維度的最小子預設(shè)屬性值,按照對應維度組合成過渡預設(shè)屬性值;
更新子模塊,用于以每個過渡業(yè)務(wù)流組的過渡預設(shè)屬性值更新相應目標簇心對應的預設(shè)屬性值,返回所述根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離的步驟,直至每個目標簇心對應的預設(shè)屬性值收斂;
第一確定子模塊,用于在確定每個目標簇心對應的預設(shè)屬性值收斂后,將過渡業(yè)務(wù)流組確定為預分業(yè)務(wù)流組。
可選的,所述初始化子模塊,包括:
獲得單元,用于根據(jù)預設(shè)公式計算多個目標預設(shè)屬性值的每一維度的目標子預設(shè)屬性值,獲得對應數(shù)量個目標預設(shè)屬性值:
第一確定單元,用于將每個目標預設(shè)屬性值,確定為一個目標簇心對應的預設(shè)屬性值;
其中,所述預設(shè)公式為:
其中,i表示目標預設(shè)屬性值的序號,j表示維度序號,表示i個目標預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最小值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最大值,k表示預設(shè)的目標預設(shè)屬性值的數(shù)量。
本發(fā)明實施例提供了一種業(yè)務(wù)流聚合方法及裝置,針對預設(shè)時間段內(nèi)到達的同源同目標的業(yè)務(wù)流,計算每個業(yè)務(wù)流的預設(shè)屬性值和業(yè)務(wù)量;將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到預分業(yè)務(wù)流組,其中,預設(shè)屬性值相似是指預設(shè)屬性值符合預定相似條件;分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。本方案所給出的業(yè)務(wù)流聚合過程中,由于每個預分業(yè)務(wù)流組中業(yè)務(wù)流的預設(shè)屬性值相似,所以目標業(yè)務(wù)流組中的業(yè)務(wù)流的預設(shè)屬性值也相似,同時目標業(yè)務(wù)流組內(nèi)業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值,達到了同時保證帶寬要求和屬性相似性要求的目的,從而提高聚合的有效性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中k-means聚合方法的流程示意圖;
圖2為本發(fā)明實施例提供的一種業(yè)務(wù)流聚合方法的流程示意圖;
圖3為圖2所示實施例中實現(xiàn)S202的流程示意圖;
圖4為圖3所示具體實現(xiàn)方式中實現(xiàn)S203的流程示意圖;
圖5為本發(fā)明實施例提供的一種業(yè)務(wù)流聚合裝置的結(jié)構(gòu)示意圖;
圖6為圖5所示實施例中預分組模塊的結(jié)構(gòu)示意圖;
圖7為圖6所示具體實現(xiàn)方式中預分組模塊的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了提高業(yè)務(wù)流聚合的有效性,本發(fā)明實施例提供了一種業(yè)務(wù)流聚合方法及裝置。
參照圖2,圖2為本發(fā)明實施例提供的一種業(yè)務(wù)流聚合方法的流程示意圖,該方法包括以下幾個步驟:
S201、針對預設(shè)時間段內(nèi)到達的同源同目的的業(yè)務(wù)流,計算每個業(yè)務(wù)流的預設(shè)屬性值和業(yè)務(wù)量;
針對同源同目的業(yè)務(wù)流,通過聚合方法聚合出業(yè)務(wù)流組后,任一個業(yè)務(wù)流組通過一條路徑來轉(zhuǎn)發(fā),都可以滿足組中所有業(yè)務(wù)流的路徑轉(zhuǎn)發(fā)要求。
需要說明的是,業(yè)務(wù)流的預設(shè)屬性值可以是業(yè)務(wù)流的一維屬性值,也可以為多維屬性值,一個維度的屬性值對應業(yè)務(wù)流的一個類別的屬性值,例如,可以將時延、丟包率、業(yè)務(wù)量三者中的任一個作為業(yè)務(wù)流的預設(shè)屬性值,也可以將它們中的任意至少兩個組合成多維屬性值,作為預設(shè)屬性值??梢岳斫獾氖?,如果預設(shè)屬性值中包括業(yè)務(wù)量,針對每個業(yè)務(wù)流的業(yè)務(wù)量只需要計算一次即可。
可以理解的是,預設(shè)時間段可以根據(jù)實際情況設(shè)定,本發(fā)明實施例并不對此進行限定。
S202、將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到至少一個預分業(yè)務(wù)流組,其中,預設(shè)屬性值相似是指預設(shè)屬性值符合預定相似條件;
本步驟針對所有業(yè)務(wù)流進行預分組,得到預分業(yè)務(wù)流組,任一預分業(yè)務(wù)流組中的所有業(yè)務(wù)流的預設(shè)屬性值都相似。其中,預定相似條件可以根據(jù)業(yè)務(wù)流的預設(shè)屬性值與用于分組的簇心所對應的預設(shè)屬性值的接近程度來設(shè)定,也可以根據(jù)任兩個預設(shè)屬性值的接近程度來設(shè)定。
S203、分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組,其中,任一目標業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值。
針對每個預分業(yè)務(wù)流組,可以將該預分業(yè)務(wù)流組中的部分業(yè)務(wù)流或全部業(yè)務(wù)流聚合成一個目標業(yè)務(wù)流組,需要說明的是,本步驟中,并不需要針對每個預分業(yè)務(wù)流組都至少聚合出一個目標業(yè)務(wù)流組。
預分業(yè)務(wù)流組中的所有業(yè)務(wù)流的預設(shè)屬性值相似,但是,預分業(yè)務(wù)流組中的所有業(yè)務(wù)流的業(yè)務(wù)量總和可能會較大,通過本步驟,可以聚合出預設(shè)屬性值相似,且業(yè)務(wù)量總和不大于預設(shè)閾值的目標業(yè)務(wù)流組,其中,預設(shè)閾值可以根據(jù)當前網(wǎng)絡(luò)的剩余帶寬來設(shè)置。
應用圖2所示實施例,目標業(yè)務(wù)流組后續(xù)被作為一個整體,向控制器請求轉(zhuǎn)發(fā)目標業(yè)務(wù)流組的路徑,不僅可以降低控制器的控制開銷,還可以減少網(wǎng)絡(luò)的轉(zhuǎn)發(fā)負擔。由于每個預分業(yè)務(wù)流組中業(yè)務(wù)流的預設(shè)屬性值相似,所以目標業(yè)務(wù)流組中的業(yè)務(wù)流的預設(shè)屬性值也相似。同時目標業(yè)務(wù)流組內(nèi)業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值。因此,達到了同時保證帶寬要求和屬性相似性要求的目的,從而提高聚合的有效性。
可選的,參照圖3,圖3為圖2所示實施例中實現(xiàn)S202的流程示意圖,預設(shè)屬性值為由多個子預設(shè)屬性值組成的多維屬性值,例如,預設(shè)屬性值是由時延和丟包率所組成的二維的屬性值,時延可以作為一個維度的子預設(shè)屬性值,丟包率可以作為另一維度的子預設(shè)屬性值。S202具體可以通過以下幾個步驟實現(xiàn):
S2021、初始化多個目標簇心,得到每個目標簇心對應的預設(shè)屬性值;
本步驟中,可以隨機的初始化得到目標簇心對應的預設(shè)屬性值,例如,隨機挑選多個業(yè)務(wù)流的預設(shè)屬性值,將挑選的預設(shè)屬性值分別作為每個目標簇心對應的預設(shè)屬性值。
當然,還可以通過以下方式進行初始化,獲得目標簇心對應的預設(shè)屬性值:
(1)、根據(jù)預設(shè)公式計算多個目標預設(shè)屬性值的每一維度的目標子預設(shè)屬性值,獲得對應數(shù)量個目標預設(shè)屬性值:
(2)、將每個目標預設(shè)屬性值,確定為一個目標簇心對應的預設(shè)屬性值;
其中,預設(shè)公式為:
其中,i表示目標預設(shè)屬性值的序號,j表示維度序號,表示i個目標預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最小值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最大值,k表示預設(shè)的目標預設(shè)屬性值的數(shù)量,另外,這里的i可以屬于[1,k]。
采用上述公式計算目標預設(shè)屬性值,一個目標預設(shè)屬性值,能夠確定為一個目標簇心對應的預設(shè)屬性值,這樣可以減少初始化的隨機性,使后續(xù)分組過程中的迭代簡化,即對業(yè)務(wù)流進行預分組變得簡單。
S2022、根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離;
本步驟可以根據(jù)以下公式計算每個業(yè)務(wù)流到每個目標簇心的距離:
其中,h表示業(yè)務(wù)流的序號,i表示目標簇心的序號,表示第h個業(yè)務(wù)流到第i個目標簇心的距離;j表示維度序號,表示第h個業(yè)務(wù)流的預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示第i個目標簇心對應的預設(shè)屬性值的第j維度的子預設(shè)屬性值,m表示所述預設(shè)屬性值的維度的數(shù)量。
具體應用時,針對每個業(yè)務(wù)流和每個目標簇心,并針對每個維度的子預設(shè)屬性值,將該業(yè)務(wù)流的該維度的子預設(shè)屬性值與該目標簇心對應的該維度的子預設(shè)屬性值做差,并取得到的差值的絕對值,將該絕對值除以該目標簇心對應的該維度的子預設(shè)屬性值,得到一個目標值。在該業(yè)務(wù)流與該目標簇心計算得到的所有目標值中取最大值,即得到該業(yè)務(wù)流到該目標簇心的距離。
需要說明的是,每個業(yè)務(wù)流到每個目標簇心的距離不僅可以采用通過上述公式計算得到的距離,也可以采用其他定義的距離,例如,歐式距離。
S2023、確定每個業(yè)務(wù)流對應的最小距離,將最小距離對應同一目標簇心的業(yè)務(wù)流分成一組,得到至少一個過渡業(yè)務(wù)流組;
目標簇心有多個,針對每個業(yè)務(wù)流會計算多個距離,其中,每個業(yè)務(wù)流都會有一個最小距離,最小距離能夠說明在這些目標簇心中,針對每個業(yè)務(wù)流對應的最小距離所對應的目標簇心,其所對應的預設(shè)屬性值與該業(yè)務(wù)流的預設(shè)屬性值最相似,因此,通過本步驟所得到的過渡業(yè)務(wù)流組中的業(yè)務(wù)流的預設(shè)屬性值相似。
S2024、針對每個過渡業(yè)務(wù)流組,將該過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的每個維度的最小子預設(shè)屬性值,按照對應維度組合成過渡預設(shè)屬性值;
例如,S2024中獲得了兩個過渡業(yè)務(wù)流組,預設(shè)屬性值為由時延和丟包率所組成的二維屬性值,第一維度的是時延,第二維度的是丟包率。其中一個過渡業(yè)務(wù)流組包括:業(yè)務(wù)流A1和業(yè)務(wù)流A2,業(yè)務(wù)流A1對應的預設(shè)屬性值為(6.25,2);業(yè)務(wù)流A2對應的預設(shè)屬性值為(6,2.1),則這個過渡業(yè)務(wù)流組所對應的過渡預設(shè)屬性值(6,2);另一個過渡業(yè)務(wù)流組包括:業(yè)務(wù)流B1和業(yè)務(wù)流B2,業(yè)務(wù)流B1對應的預設(shè)屬性值為(6.15,2.2);業(yè)務(wù)流B2對應的預設(shè)屬性值為(6.08,2.15),則這個過渡業(yè)務(wù)流組所對應的過渡預設(shè)屬性值(6.08,2.15)。
S2025、以每個過渡業(yè)務(wù)流組的過渡預設(shè)屬性值更新相應目標簇心對應的預設(shè)屬性值,返回S2022,直至每個目標簇心對應的預設(shè)屬性值收斂;
由S2023和S2024可以確定,一個目標簇心可能對應一個過渡業(yè)務(wù)流組,也可能沒有對應過渡業(yè)務(wù)流組,而一個過渡業(yè)務(wù)流組對應一個過渡預設(shè)屬性值,因此,目標簇心的數(shù)量有可能等于當前的過渡預設(shè)屬性值的數(shù)量,也可能多于當前的過渡預設(shè)屬性值的數(shù)量。
S2026、在確定每個目標簇心對應的預設(shè)屬性值收斂后,將過渡業(yè)務(wù)流組確定為預分業(yè)務(wù)流組。
S2022-S2025的循環(huán)步驟,在每個目標簇心對應的預設(shè)屬性值收斂后結(jié)束,通過S2021-S2025獲得的過渡業(yè)流組,可以保證過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的相似性。S2024的設(shè)置,使得后續(xù)更容易找到滿足預分業(yè)務(wù)流組中每個業(yè)務(wù)流的各項屬性要求的路徑,從而有利于提高聚合的有效性。
通過利用圖3所述的具體實現(xiàn)方式,能夠較為準確的將需要聚合的業(yè)務(wù)流進行預分組,提高預分業(yè)務(wù)流組中的業(yè)務(wù)流的相似性,從而可以提高業(yè)務(wù)流聚合的有效性。需要強調(diào)的是,上述圖3所示的具體實現(xiàn)方式僅僅作為S202的一種具體實現(xiàn)方式,并不應該構(gòu)成對本發(fā)明實施例的限定。
可選的,在S202采用圖3所示具體實現(xiàn)方式的基礎(chǔ)上,如圖4所示,圖4為圖3所示具體實現(xiàn)方式中實現(xiàn)S203的流程示意圖,S203具體可以通過以下幾個步驟實現(xiàn):
S2031、針對每個預分業(yè)務(wù)流組,計算該預分業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和;
S2032、根據(jù)每個預分業(yè)務(wù)流組的業(yè)務(wù)量總和以及預設(shè)閾值,確定每個預分業(yè)務(wù)流組待聚合出的目標業(yè)務(wù)流組的數(shù)量;
本步驟中所確定的數(shù)量,可以根據(jù)預分業(yè)務(wù)流組的業(yè)務(wù)量總和除以預設(shè)閾值所得到的數(shù)值來確定。所得到的數(shù)值為小數(shù)時,可以將小數(shù)點后面的部分直接去掉即下取整,或采用四舍五入的方式,對所得到的數(shù)值進行取整處理,取整處理后的數(shù)值就是該預分業(yè)務(wù)流組待聚合出的目標業(yè)務(wù)流組的數(shù)量。例如,采用去掉小數(shù)點后面的部分來進行取整處理,一個預分業(yè)務(wù)流組的業(yè)務(wù)量總和除以預設(shè)閾值所得到的數(shù)值為0.4,則這個預分業(yè)務(wù)流組待聚合出的目標業(yè)務(wù)流組的數(shù)量為0,另一個預分業(yè)務(wù)流組的業(yè)務(wù)量總和除以預設(shè)閾值所得到的數(shù)值為2.8,則這個預分業(yè)務(wù)流組待聚合出的目標業(yè)務(wù)流組的數(shù)量為2。
S2033、從每個的預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
本步驟按照S2032中所確定的數(shù)量進行聚合。本領(lǐng)域技術(shù)人員可以理解的是,如果所確定的數(shù)量為0,則本步驟中針對相應的預分業(yè)務(wù)流組不聚合;如果所確定的數(shù)量為大于0的數(shù),則針對相應的預分業(yè)務(wù)流組聚合,能夠聚合出對應數(shù)量的目標業(yè)務(wù)流組。
具體的,在一種具體實現(xiàn)方式中,所述從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟,具體可以包括:針對每個預分業(yè)務(wù)流組,執(zhí)行以下步驟:
(1)、按照本組中業(yè)務(wù)流的業(yè)務(wù)量大小,將本組中的業(yè)務(wù)流排序;
(2)、按照排序得到的順序,確定出業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的未聚合的業(yè)務(wù)流;
(3)、判斷其余未聚合的業(yè)務(wù)流中,是否存在至少一個業(yè)務(wù)流,使得所確定的業(yè)務(wù)流與存在的至少一個業(yè)務(wù)流的業(yè)務(wù)量總和等于預設(shè)閾值;
(4)、如果存在,將所確定的業(yè)務(wù)流與存在的至少一個業(yè)務(wù)流聚合成目標業(yè)務(wù)流組,否則,將所確定的業(yè)務(wù)流聚合成目標業(yè)務(wù)流組;
(5)、返回按照排序得到的順序,確定出業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的未聚合的業(yè)務(wù)流的步驟,直到聚合出該預分業(yè)務(wù)流組對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
下面將對上述針對每個預分業(yè)務(wù)流組,所執(zhí)行的步驟(1)-(5)進行詳細說明。步驟(1)中的排序,可以按照業(yè)務(wù)量從大到小的順序,將本組中的業(yè)務(wù)流排序,也可以按照業(yè)務(wù)量從小到大的順序,將本組中的業(yè)務(wù)流排序。通過步驟(2)能夠確定出一些業(yè)務(wù)量總和接近且不大于預設(shè)閾值的業(yè)務(wù)流,通過步驟(3)能夠進一步且盡可能地使業(yè)務(wù)量總和等于預設(shè)閾值。通過步驟(1)-(5)聚合出的目標業(yè)務(wù)流組,能夠盡可能地使目標業(yè)務(wù)流組中的所有業(yè)務(wù)流的業(yè)務(wù)量總和接近預設(shè)閾值,也盡可能的等于預設(shè)閾值。后續(xù)轉(zhuǎn)發(fā)這樣的目標業(yè)務(wù)流組,能夠提高轉(zhuǎn)發(fā)效率,這樣也就提高了業(yè)務(wù)流聚合的有效性。
另外,步驟(1)中的排序,在按照業(yè)務(wù)量從大到小的順序,將本組中的業(yè)務(wù)流排序的情況下,步驟(2)中優(yōu)先確定出業(yè)務(wù)量較大的業(yè)務(wù)流,步驟(3)中再從一些較小業(yè)務(wù)量的業(yè)務(wù)流中找出使業(yè)務(wù)量總和等于預設(shè)閾值的業(yè)務(wù)流。采用這種方式,可以盡可能地使聚合的目標業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和等于預設(shè)閾值,進一步提高業(yè)務(wù)流聚合的合理性。
需要說明的是,通過利用上述圖3或圖4所示的具體實現(xiàn)方式,在從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟之后,還可能存在至少一個預分業(yè)務(wù)流組,這些組中的業(yè)務(wù)流沒有全部被聚合。因此,可選的,在利用上述圖3或圖4所示的具體實現(xiàn)方式的基礎(chǔ)上,該業(yè)務(wù)流聚合方法還可以增加以下幾個步驟:
(1)、計算每個預分業(yè)務(wù)流組對應的目標簇心到預設(shè)原點簇心的距離;
本步驟中的距離,可以根據(jù)目標簇心對應的預設(shè)屬性值,以及預設(shè)原點簇心對應的預設(shè)屬性值所計算的歐式距離,預設(shè)原點對應的預設(shè)屬性值,可以是任一預分業(yè)務(wù)流組對應的目標簇心所對應的預設(shè)屬性值,也可以是其它預設(shè)的值作為原點簇心所對應的預設(shè)屬性值。
(2)、按照所計算的距離的大小,將每個預設(shè)業(yè)務(wù)流組排序;
本步驟將預分業(yè)務(wù)流組排序,排序后的預分業(yè)務(wù)流組,相鄰的兩個預分業(yè)務(wù)流組的業(yè)務(wù)流的相似性,要比不相鄰的兩個預分業(yè)務(wù)流組的相似性要高。
(3)、在從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟之后,優(yōu)先按照預分業(yè)務(wù)流組的排序順序,再按照每個預分業(yè)務(wù)流組中業(yè)務(wù)流的排序順序,依次將業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的未聚合的業(yè)務(wù)流,聚合成一個待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
在從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟之后,有的預分業(yè)務(wù)流組中可能還剩余未被聚合的業(yè)務(wù)流,有的預分業(yè)務(wù)流組中的業(yè)務(wù)流可能已經(jīng)全部被聚合。針對未被聚合的業(yè)務(wù)流,繼續(xù)對這些未被聚合的業(yè)務(wù)流進行聚合,有利于進一步降低控制器的控制開銷,和網(wǎng)絡(luò)的轉(zhuǎn)發(fā)負擔??紤]到從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組之后,每組剩余的未被聚合的業(yè)務(wù)流的業(yè)務(wù)量總和均可能小于預設(shè)閾值,如果直接將一個預分業(yè)務(wù)流組中的剩余未被聚合的業(yè)務(wù)流聚合為一個目標業(yè)務(wù)流組,聚合出的目標業(yè)務(wù)流組中的業(yè)務(wù)流的業(yè)務(wù)量總和可能較小,聚合的有效性較低。
考慮到排序后的預分業(yè)務(wù)流組,相鄰的兩個預分業(yè)務(wù)流組的業(yè)務(wù)流的相似性,要比不相鄰的兩個預分業(yè)務(wù)流組的相似性要高。在限制業(yè)務(wù)量總和的最大值的情況下,盡可能的將相鄰預分業(yè)務(wù)流組中的業(yè)務(wù)流聚合在一起,使得聚合出的目標業(yè)務(wù)流組中的業(yè)務(wù)流的業(yè)務(wù)量總和接近或等于預設(shè)閾值,這樣就能夠提高聚合的有效性。
需要說明的是,本發(fā)明實施例中聚合出的任一目標業(yè)務(wù)流組,本組內(nèi)的業(yè)務(wù)流的預設(shè)屬性值相似,且業(yè)務(wù)量總和接近且不大于預設(shè)閾值,因此,說明每個目標業(yè)務(wù)組本身的質(zhì)量是符合后續(xù)路徑分配要求的。同樣,通過本發(fā)明實施例,還可以聚合出較為合理的數(shù)量的目標業(yè)務(wù)流組。根據(jù)到達的所有同源同目的業(yè)務(wù)流的業(yè)務(wù)量總和除以預設(shè)閾值,可以通過四舍五入或上取整的方式,確定一個用于評判的整數(shù),最終目標業(yè)務(wù)流組的數(shù)量越接近這個用于評判的整數(shù),說明聚合的數(shù)量越合理。實際應用時,可以證明最終聚合的目標業(yè)務(wù)流組的數(shù)量是接近這個用于評判的整數(shù)的。
下面結(jié)合具體的應用實例,對本發(fā)明實施例所提供的一種業(yè)務(wù)流聚合方法進行介紹。
假設(shè),業(yè)務(wù)流的預設(shè)屬性值由時延和丟包率組成,針對到達的業(yè)務(wù)流f1、業(yè)務(wù)流f2…業(yè)務(wù)流f40等40條業(yè)務(wù)流進行聚合,這些業(yè)務(wù)流要求的時延的最小值為6ms,最大值為10ms;要求的丟包率的最小值為2%,最大值為4%,目標簇心的數(shù)量預設(shè)為4,則根據(jù)上述公式可以計算出4個目標預設(shè)屬性值,分別為(6.5,2.25)、(7.5,2.75)、(8.5,3.25)、(9.5,3.75),這四個目標預設(shè)屬性值分別確定為四個目標簇心C1、C2、C3、C4對應的預設(shè)屬性值。
在進行預分組的每輪迭代過程中,采用S2022中提到的公式,分別計算這40個業(yè)務(wù)流分別到C1、C2、C3、C4這個四個目標簇心的距離,確定每個業(yè)務(wù)流對應的最小距離,將最小距離對應同一目標簇心的業(yè)務(wù)流分成一組,得到至少一個過渡業(yè)務(wù)流組。四個目標簇心C1、C2、C3、C4所對應的過渡業(yè)務(wù)流組分別用F1、F2、F3、F4表示。例如,業(yè)務(wù)流f1的預設(shè)屬性值為(6.2,2.35),離(6.5,2.25)的距離最近,則可以將業(yè)務(wù)流f1加入到C1對應的過渡業(yè)務(wù)流組F1中。將業(yè)務(wù)流f1、業(yè)務(wù)流f2…業(yè)務(wù)流f40等40條業(yè)務(wù)流加入到本輪計算所對應的過渡業(yè)務(wù)流組中。針對每個過渡業(yè)務(wù)流組,將該過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的每個維度的最小子預設(shè)屬性值,按照對應維度組合成過渡預設(shè)屬性值。例如,目標簇心C1當前對應的預設(shè)屬性值為(6.5,2.25),經(jīng)過一輪預迭代后,過渡業(yè)務(wù)流組F1包含業(yè)務(wù)流f1和業(yè)務(wù)流f2,業(yè)務(wù)流f1的屬性值為(6.2,2.35),業(yè)務(wù)流f2的屬性值為(6.0,2.45),則根據(jù)過渡業(yè)務(wù)流組F1所確定的過渡預設(shè)屬性值為(6.0,2.35)。以每個過渡業(yè)務(wù)流組的過渡預設(shè)屬性值更新相應目標簇心對應的預設(shè)屬性值。例如,以過渡預設(shè)屬性值(6.0,2.35)更新目標簇心C1對應的預設(shè)屬性值。根據(jù)上述步驟,經(jīng)過不斷的迭代,直到四個目標簇心C1、C2、C3、C4所對應的預設(shè)屬性值都收斂。通過上述迭代的方式將業(yè)務(wù)流f1、業(yè)務(wù)流f2…業(yè)務(wù)流f40等40條業(yè)務(wù)流預分組,得到四個預分業(yè)務(wù)流組,如表一所示,最后一輪迭代的過渡業(yè)務(wù)流組F1、F2、F3、F4就是預分業(yè)務(wù)流組。表一中,預分業(yè)務(wù)流組F1包括業(yè)務(wù)流f1、業(yè)務(wù)流f2…業(yè)務(wù)流f10等10個業(yè)務(wù)流,對應的業(yè)務(wù)量分別是5、5、5、5、5、5、5、4、4、2;預分業(yè)務(wù)流組F2包括業(yè)務(wù)流f11、業(yè)務(wù)流f12…業(yè)務(wù)流f20等10個業(yè)務(wù)流,對應的業(yè)務(wù)量分別是5、5、5、4、4、3、3、3、2、1;預分業(yè)務(wù)流組F3包括業(yè)務(wù)流f21、業(yè)務(wù)流f22…業(yè)務(wù)流f30等10個業(yè)務(wù)流,對應的業(yè)務(wù)量分別是5、5、4、3、3、2、2、1、1、1;預分業(yè)務(wù)流組F4包括業(yè)務(wù)流f31、業(yè)務(wù)流f32…業(yè)務(wù)流f40等10個業(yè)務(wù)流,對應的業(yè)務(wù)量分別是1、1、1、1、1、1、1、1、1、1。其中,業(yè)務(wù)量的單位均為M。另外,表一中,預分業(yè)務(wù)流組F1、預分業(yè)務(wù)流組F2、預分業(yè)務(wù)流組F3、預分業(yè)務(wù)流組F4是以預分業(yè)務(wù)流組F1對應的目標簇心為原點簇心,通過計算每個目標簇心到原點簇心的歐式距離,按照距離從小到大的順序排列的,且每個組中的業(yè)務(wù)流是按照業(yè)務(wù)量從大到小的順序排列的。
表一
從表一中可以看出,預分業(yè)務(wù)流組F1、預分業(yè)務(wù)流組F2、預分業(yè)務(wù)流組F3、預分業(yè)務(wù)流組F4各自對應的業(yè)務(wù)流的業(yè)務(wù)量總和分別為45M、35M、27M、10M,預設(shè)閾值是根據(jù)當前網(wǎng)絡(luò)剩余帶寬得到的,確定為20M。初步計算45M除以20M等于2.25,通過舍去小數(shù)點后面部分進行取整,得到數(shù)量2,同理,其他幾個業(yè)務(wù)量總和所確定的數(shù)量分別為1、1、0。這40個業(yè)務(wù)流的業(yè)務(wù)量總和為117M,處于20M等于5.85,向上取整,得到數(shù)量6??梢詫⒆罱K實際聚合出的目標業(yè)務(wù)流組的數(shù)量,與根據(jù)這40個業(yè)務(wù)流的業(yè)務(wù)量總和為117M確定的數(shù)量進行比較,可以用于判斷業(yè)務(wù)流聚合是否合理,并具有一定的可信度。
預分業(yè)務(wù)流組F1對應的數(shù)量是2,當前需要聚合出2個目標業(yè)務(wù)流組。按照預分業(yè)務(wù)流組F1中業(yè)務(wù)流的排序順序,依次確定業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的業(yè)務(wù)流f1-f4,業(yè)務(wù)量總和為20M,這四個業(yè)務(wù)流聚合成一個目標業(yè)務(wù)流組;再依次確定業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的業(yè)務(wù)流f5-f8,業(yè)務(wù)量總和為19M,再從本組中其余未被聚合的業(yè)務(wù)流f9和業(yè)務(wù)流f10中確定是否存在在至少一個業(yè)務(wù)流,使得所確定的業(yè)務(wù)流f5-f8與存在的至少一個業(yè)務(wù)流的業(yè)務(wù)量總和等于20M,業(yè)務(wù)流f9和業(yè)務(wù)流f10的業(yè)務(wù)量分別為4M和2M,這兩個業(yè)務(wù)量加上19M都大于20M,因此,不存在至少一個業(yè)務(wù)流,使得所確定的業(yè)務(wù)流f5-f8與之業(yè)務(wù)量之和等于20M。所以將業(yè)務(wù)流f5-f8聚合成一個目標業(yè)務(wù)流組。
針對預分業(yè)務(wù)流組F2,預分業(yè)務(wù)流組F2對應的數(shù)量是1,當前需要聚合出一個目標業(yè)務(wù)流組。按照預分業(yè)務(wù)流組F2中業(yè)務(wù)流的排序順序,依次確定業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的業(yè)務(wù)流f11-f14,業(yè)務(wù)量總和等于19M,再從本組中其余未被聚合的業(yè)務(wù)流f15-f20中確定是否存在至少一個業(yè)務(wù)流,使得所確定的業(yè)務(wù)流f5-f8與存在的至少一個業(yè)務(wù)流的業(yè)務(wù)量總和等于20M,可以確定出存的至少一個業(yè)務(wù)流是業(yè)務(wù)流f20,因此,將業(yè)務(wù)流f11-f14、業(yè)務(wù)流f20等五個業(yè)務(wù)流聚合成一個目標業(yè)務(wù)流組。
同理,將預分業(yè)務(wù)流組F3中的業(yè)務(wù)流f21-f25聚合成一個目標業(yè)務(wù)流組,當前對預分業(yè)務(wù)流組F3不進行聚合。
針對每個預分業(yè)務(wù)流組,聚合出該預分業(yè)務(wù)流組對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組之后,預分業(yè)務(wù)流組F1-F4均剩余未被聚合的業(yè)務(wù)流。優(yōu)先按照預分業(yè)務(wù)流組的排序順序,再按照每個預分業(yè)務(wù)流組中業(yè)務(wù)流的排序順序,即按照業(yè)務(wù)流f9、f10、f15、f16、f17、f18、f19、f26、f27、f28、f29、f30、f31、f32、f33、f34、f35、f36、f37、f38、f39、f40的順序排序,業(yè)務(wù)流f9、f10、f15、f16、f17、f18的業(yè)務(wù)量總和等于19M,再加上業(yè)務(wù)流f19之后,業(yè)務(wù)量總和等于21M,因此,將業(yè)務(wù)流f9、f10、f15、f16、f17、f18聚合成一個目標業(yè)務(wù)流組。同理,將f19、f26、f27、f28、f29、f30、f31、f32、f33、f34、f35、f36、f37、f38、f39、f40的業(yè)務(wù)量總和等于19M,因此,將這26個業(yè)務(wù)流聚合成一個目標業(yè)務(wù)流組。
最終,將到達的業(yè)務(wù)流f1、業(yè)務(wù)流f2…業(yè)務(wù)流f40等40條業(yè)務(wù)流聚合成6個目標業(yè)務(wù)流組,任一個目標業(yè)務(wù)流組中的業(yè)務(wù)流的預設(shè)屬性值相似,且組內(nèi)的業(yè)務(wù)量總和接近且不大于預設(shè)閾值。同時,最終聚合的數(shù)量與根據(jù)這40條業(yè)務(wù)流的業(yè)務(wù)量總和所確定數(shù)量6一致。因此,不管是從聚合后目標業(yè)務(wù)流組的質(zhì)量上還是聚合后目標業(yè)務(wù)流的數(shù)量上,聚合結(jié)果都較為合理,因此,能夠提高聚合的有效性。
需要說明的是,上述方法實施例的流程,可以是基于以下目標公式和約束條件所轉(zhuǎn)化的:
所提出的目標函數(shù)如下:
min[(1-β)Tmax+βV]
基于帶寬要求、時延差限制、丟包率差限制,以及目標業(yè)務(wù)流組的業(yè)務(wù)量總和的最高限制,所提出的約束條件如下:
xf,m∈{0,1}
其中,Tmax代表了聚合后的目標業(yè)務(wù)流組的業(yè)務(wù)量總和的最大值,β代表了聚合后目標業(yè)務(wù)流組的最大業(yè)務(wù)量總和Tmax以及目標業(yè)務(wù)流組之間的業(yè)務(wù)總量差值V之間的均衡參數(shù),是通過多次實驗調(diào)整獲得的,以期望達到最好的效果,β的取值范圍為[0,1]。
針對上述約束條件所涉及的公式中的參數(shù),在這里統(tǒng)一說明,其中,Rf,t表示業(yè)務(wù)流的業(yè)務(wù)量,xf,m表示二進制變量,當業(yè)務(wù)流f聚合目標業(yè)務(wù)流組中時,xf,m的值為1,否則為0;delayf,t表示業(yè)務(wù)流f的時延,GC、GV表示相鄰的預分業(yè)務(wù)流組;D表示是時延差限制;lossf,t表示業(yè)務(wù)流f的丟包率,L表示是丟包率差限制;V表示目標業(yè)務(wù)流組之間的業(yè)務(wù)總量差值,用于盡可能的保證聚合后的大流業(yè)務(wù)總量均衡,αm,c為從預分業(yè)務(wù)流組中提取用于組成目標業(yè)務(wù)流組的業(yè)務(wù)流的比例,Zm,t為預分業(yè)務(wù)流組中的業(yè)務(wù)流的業(yè)務(wù)量總和。另外,Smax和Smin表示所有業(yè)務(wù)流的時延的最大值和最小值,dmax和dmin表示所有業(yè)務(wù)流的丟包率的最大值和最小值,k表示預分組時的目標簇心的數(shù)量。
目標函數(shù)中采用Tmax,代表了對聚合后的目標業(yè)務(wù)流組的業(yè)務(wù)量總和的最大值進行了限制。因為當業(yè)務(wù)流無限制的聚合后,目標業(yè)務(wù)流組的業(yè)務(wù)量總和可能較大,由于網(wǎng)絡(luò)中的帶寬剩余的限制,會導致難以為無限制條件下聚合的目標業(yè)務(wù)流組找到合適的轉(zhuǎn)發(fā)路徑。因此,通過目標業(yè)務(wù)流組的業(yè)務(wù)量總和的最大值進行限制,實現(xiàn)對業(yè)務(wù)流聚合的有效性的提升。同時,根據(jù)簇心進行預分類時,考慮從相鄰預分業(yè)務(wù)流組中提取的業(yè)務(wù)流的相似性,需要對相鄰預分業(yè)務(wù)流組之間的預設(shè)屬性值進行限制,否則會出現(xiàn)聚合后的目標業(yè)務(wù)流組中業(yè)務(wù)流的預設(shè)屬性值不相似,無法搜索預設(shè)屬性值限制范圍更窄的轉(zhuǎn)發(fā)路徑。上述約束條件中的兩個不等式方程:
是基于對時延和丟包率的限制提出的。前者表示對時延差的限制,用于保證聚合后的目標業(yè)務(wù)流組中業(yè)務(wù)流之間時延的相似性,后者表示對丟包率差的限制,用于保證聚合后的目標業(yè)務(wù)流組中業(yè)務(wù)流之間的丟包率的相似性。通過二進制變量xf,m進行約束,因為每條業(yè)務(wù)流只能聚合到一個目標業(yè)務(wù)流組中,因此,無論來自哪個預分業(yè)務(wù)流組,所有業(yè)務(wù)流對應對應的二進制變量xf,m之和必為1。
在上述方法實施例的基礎(chǔ)上,本發(fā)明實施例提供了一種業(yè)務(wù)流聚合裝置,參照圖5,圖5為本發(fā)明實施例提供的一種業(yè)務(wù)流聚合裝置的結(jié)構(gòu)示意圖,該裝置包括:
第一計算模塊51,用于針對預設(shè)時間段內(nèi)到達的同源同目的的業(yè)務(wù)流,計算每個業(yè)務(wù)流的預設(shè)屬性值和業(yè)務(wù)量;
預分組模塊52,用于將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到至少一個預分業(yè)務(wù)流組,其中,所述預設(shè)屬性值相似是指預設(shè)屬性值符合預定相似條件;
第一聚合模塊53,用于分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組,其中,任一目標業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值。
應用圖5所示實施例,針對預設(shè)時間段內(nèi)到達的同源同目標的業(yè)務(wù)流,計算每個業(yè)務(wù)流的預設(shè)屬性值和業(yè)務(wù)量;將預設(shè)屬性值相似的業(yè)務(wù)流分為一組,得到預分業(yè)務(wù)流組,其中,預設(shè)屬性值相似是指預設(shè)屬性值符合預定相似條件;分別對得到的每個預分業(yè)務(wù)流組進行業(yè)務(wù)流聚合,得到待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組,在這個業(yè)務(wù)流聚合過程中,由于每個預分業(yè)務(wù)流組中業(yè)務(wù)流的預設(shè)屬性值相似,所以目標業(yè)務(wù)流組中的業(yè)務(wù)流的預設(shè)屬性值也相似。同時目標業(yè)務(wù)流組內(nèi)業(yè)務(wù)流的業(yè)務(wù)量總和不大于預設(shè)閾值。因此,達到了同時保證帶寬要求和屬性相似性要求的目的,從而提高聚合的有效性。
參照圖6,圖6為圖5所示實施例中預分組模塊的結(jié)構(gòu)示意圖,預設(shè)屬性值為由多個子預設(shè)屬性值組成的多維屬性值;
預分組模塊52,可以包括:
初始化子模塊521,用于初始化多個目標簇心,得到每個目標簇心對應的預設(shè)屬性值;
第一計算子模塊522,用于根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離;
預分組子模塊523,用于確定每個業(yè)務(wù)流對應的最小距離,將最小距離對應同一目標簇心的業(yè)務(wù)流分成一組,得到至少一個過渡業(yè)務(wù)流組;
組合子模塊524,用于針對每個過渡業(yè)務(wù)流組,將該過渡業(yè)務(wù)流組中所有業(yè)務(wù)流的每個維度的最小子預設(shè)屬性值,按照對應維度組合成過渡預設(shè)屬性值;
更新子模塊525,用于以每個過渡業(yè)務(wù)流組的過渡預設(shè)屬性值更新相應目標簇心對應的預設(shè)屬性值,返回根據(jù)每個業(yè)務(wù)流的預設(shè)屬性值,以及每個目標簇心對應的預設(shè)屬性值,計算每個業(yè)務(wù)流到每個目標簇心的距離的步驟,直至每個目標簇心對應的預設(shè)屬性值收斂;
第一確定子模塊526,用于在確定每個目標簇心對應的預設(shè)屬性值收斂后,將過渡業(yè)務(wù)流組確定為預分業(yè)務(wù)流組。
初始化子模塊521,包括:獲得單元和第一確定單元(圖中未示出);
獲得單元,用于根據(jù)預設(shè)公式計算多個目標預設(shè)屬性值的每一維度的目標子預設(shè)屬性值,獲得對應數(shù)量個目標預設(shè)屬性值:
第一確定單元,用于將每個目標預設(shè)屬性值,確定為一個目標簇心對應的預設(shè)屬性值;
其中,預設(shè)公式為:
其中,i表示目標預設(shè)屬性值的序號,j表示維度序號,表示i個目標預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最小值,表示所有業(yè)務(wù)流的第j維度的子預設(shè)屬性值的最大值,k表示預設(shè)的目標預設(shè)屬性值的數(shù)量。
第一計算子模塊522,具體根據(jù)以下公式計算每個業(yè)務(wù)流到每個目標簇心的距離:
其中,h表示業(yè)務(wù)流的序號,i表示目標簇心的序號,表示第h個業(yè)務(wù)流到第i個目標簇心的距離;j表示維度序號,表示第h個業(yè)務(wù)流的預設(shè)屬性值的第j維度的子預設(shè)屬性值,表示第i個目標簇心對應的預設(shè)屬性值的第j維度的子預設(shè)屬性值,m表示預設(shè)屬性值的維度的數(shù)量。
參照圖7,圖7為圖6所示具體實現(xiàn)方式中預分組模塊的結(jié)構(gòu)示意圖,第一聚合模塊53,包括:
第二計算子模塊531,用于針對每個預分業(yè)務(wù)流組,計算該預分業(yè)務(wù)流組中所有業(yè)務(wù)流的業(yè)務(wù)量總和;
第二確定子模塊532,用于根據(jù)每個預分業(yè)務(wù)流組的業(yè)務(wù)量總和以及預設(shè)閾值,確定每個預分業(yè)務(wù)流組待聚合出的目標業(yè)務(wù)流組的數(shù)量;
聚合子模塊533,用于從每個的預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
圖7所示實施例的一種實施方式中,聚合子模塊533,包括:排序單元、第二確定單元、判斷單元、聚合單元、返回單元(圖中未示出);
針對每個預分業(yè)務(wù)流組,執(zhí)行以下步驟:
排序單元,用于按照本組中業(yè)務(wù)流的業(yè)務(wù)量大小,將本組中的業(yè)務(wù)流排序;
第二確定單元,用于按照排序得到的順序,確定出業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的未聚合的業(yè)務(wù)流;
判斷單元,用于判斷其余未聚合的業(yè)務(wù)流中,是否存在至少一個業(yè)務(wù)流,使得所確定的業(yè)務(wù)流與存在的至少一個業(yè)務(wù)流的業(yè)務(wù)量總和等于預設(shè)閾值;
聚合單元,用于判斷單元的判斷結(jié)果為存在時,將所確定的業(yè)務(wù)流與存在的至少一個業(yè)務(wù)流聚合成目標業(yè)務(wù)流組,否則,將所確定的業(yè)務(wù)流聚合成目標業(yè)務(wù)流組;
返回單元,用于返回按照排序得到的順序,確定出業(yè)務(wù)量總和最接近且不大于預設(shè)閾值的未聚合的業(yè)務(wù)流的步驟,直到聚合出該預分業(yè)務(wù)流組對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
在圖6或圖7所示實施例的基礎(chǔ)上,業(yè)務(wù)流聚合裝置還可以包括:第二計算模塊、排序模塊和第二聚合模塊(圖中未示出)。
第二計算模塊,用于計算每個預分業(yè)務(wù)流組對應的目標簇心到預設(shè)原點簇心的距離;
排序模塊,用于按照所計算的距離的大小,將每個預設(shè)業(yè)務(wù)流組排序;
第二聚合模塊,用于在所述從每個預分業(yè)務(wù)流組中,聚合出對應數(shù)量的待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組的步驟之后,優(yōu)先按照預分業(yè)務(wù)流組的排序順序,再按照每個預分業(yè)務(wù)流組中業(yè)務(wù)流的排序順序,依次將業(yè)務(wù)量總和最接近且不大于所述預設(shè)閾值的未聚合的業(yè)務(wù)流,聚合成一個待向控制器請求轉(zhuǎn)發(fā)路徑的目標業(yè)務(wù)流組。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的每個實施例均采用相關(guān)的方式描述,每個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。