本發(fā)明涉及一種用于數(shù)據(jù)流優(yōu)化的系統(tǒng)和方法并且尤其涉及一種用于在網(wǎng)絡(luò)化計算系統(tǒng)中優(yōu)化數(shù)據(jù)流的系統(tǒng)和方法,即,對如何將通過網(wǎng)絡(luò)化計算系統(tǒng)接收的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)發(fā)然后通過網(wǎng)絡(luò)化計算系統(tǒng)發(fā)送數(shù)據(jù)進行優(yōu)化。具體來說,本發(fā)明涉及對路由進行優(yōu)化,在所述路由上數(shù)據(jù)被轉(zhuǎn)發(fā)到軟件定義網(wǎng)絡(luò)(software-defined network,SDN)。優(yōu)化優(yōu)選地通過SDN應(yīng)用執(zhí)行。
背景技術(shù):
現(xiàn)代通信和數(shù)據(jù)網(wǎng)絡(luò)包括網(wǎng)絡(luò)節(jié)點,例如,路由器、交換機、網(wǎng)橋和通過網(wǎng)絡(luò)傳輸數(shù)據(jù)的其它設(shè)備。近年來,電信行業(yè)已經(jīng)對網(wǎng)絡(luò)基礎(chǔ)設(shè)施作出改進并且尤其對用于此網(wǎng)絡(luò)基礎(chǔ)設(shè)施的節(jié)點作出改進以支持日益增多的網(wǎng)絡(luò)協(xié)議,但是還允許界定網(wǎng)絡(luò)基礎(chǔ)設(shè)施必須符合的規(guī)則、規(guī)范和標準(在下文中也被稱為約束或約束參數(shù))。
創(chuàng)建和耦合復(fù)雜的網(wǎng)絡(luò)節(jié)點以形成支持和實施各種標準和協(xié)議的網(wǎng)絡(luò)基礎(chǔ)設(shè)施要求能夠容易地配置節(jié)點,所述網(wǎng)絡(luò)基礎(chǔ)設(shè)施例如允許虛擬專用網(wǎng)絡(luò)(virtual private network,VPN)。
為了允許易于配置和管理大量網(wǎng)絡(luò)基礎(chǔ)設(shè)施節(jié)點,軟件定義網(wǎng)絡(luò)連接(software-defined networking,SDN)提供了一種實現(xiàn)此目標的方法。
在SDN中,原則上,網(wǎng)絡(luò)節(jié)點的配置從網(wǎng)絡(luò)節(jié)點的物理設(shè)置中解耦。這允許在抽象的水平上定義如何發(fā)送且在何處發(fā)送網(wǎng)絡(luò)數(shù)據(jù)的要求(這通常被稱作“控制平面”)。存在根本的更加物理的平面,所述平面實際上根據(jù)控制平面上的要求設(shè)置將數(shù)據(jù)轉(zhuǎn)發(fā)到選定的目的地(設(shè)置的這部分通常被稱作“數(shù)據(jù)面”)。
因此,在SDN中,數(shù)據(jù)轉(zhuǎn)發(fā)能力從先前在網(wǎng)絡(luò)節(jié)點中執(zhí)行的路由、資源和其它管理功能中解耦。支持SDN的(即,SDN兼容的)網(wǎng)絡(luò)節(jié)點,例如,虛擬交換機(例如,開放式虛擬交換機(open virtual switch,OVS)),可用于根據(jù)數(shù)據(jù)面實施功能,而控制平面功能可以通過管理和控制數(shù)據(jù)面上的配置的SDN控制器提供。
應(yīng)用軟件編程接口(application programming interface,API)可管理數(shù)據(jù)面與控制平面之間的相互作用并且允許在網(wǎng)絡(luò)內(nèi)網(wǎng)絡(luò)連接節(jié)點和SDN控制器的(非廠商自定義)組合的實施。因此,SDN結(jié)合所提供的API服務(wù)可為網(wǎng)絡(luò)基礎(chǔ)設(shè)施提供許多益處,其例如包含增大的網(wǎng)絡(luò)虛擬化、靈活的控制以及網(wǎng)絡(luò)的利用率,而且還根據(jù)具體需求和通過網(wǎng)絡(luò)的數(shù)據(jù)流的優(yōu)化對網(wǎng)絡(luò)進行定制。
通常,包括SDN控制器的控制平面通過API與“應(yīng)用平面”相互作用。在應(yīng)用平面上,提供SDN應(yīng)用,所述應(yīng)用向控制平面?zhèn)鬟_它們的網(wǎng)絡(luò)需求和所需的網(wǎng)絡(luò)行為。另外,它們可為它們的內(nèi)部決策制定過程消耗網(wǎng)絡(luò)的抽象化查看。SDN應(yīng)用也可以曝露抽象化網(wǎng)絡(luò)控制的另一層,因此提供可用于與應(yīng)用通信的一個或多個較高水平接口。
為了優(yōu)化通過網(wǎng)絡(luò)化計算系統(tǒng)的數(shù)據(jù)轉(zhuǎn)發(fā),有益的是也在SDN應(yīng)用中執(zhí)行網(wǎng)絡(luò)優(yōu)化,因為這允許通過相對不變的SDN控制器保持相對不變或完全不變的控制平面。
因此本發(fā)明旨在驗證應(yīng)用平面水平上的改進的優(yōu)化功能,這允許優(yōu)化通過系統(tǒng)轉(zhuǎn)發(fā)數(shù)據(jù)。
技術(shù)實現(xiàn)要素:
因此,在第一方面中,本發(fā)明提供一種網(wǎng)絡(luò)化計算系統(tǒng),其包括:連接到至少一個網(wǎng)絡(luò)的至少一個網(wǎng)絡(luò)通信接口,所述至少一個網(wǎng)絡(luò)通信接口用于從至少一個網(wǎng)絡(luò)接收數(shù)據(jù)以及發(fā)送數(shù)據(jù)到至少一個網(wǎng)絡(luò);控制組件,其中所述控制組件用于配置路由,在所述路由上通過網(wǎng)絡(luò)化計算系統(tǒng)從至少一個網(wǎng)絡(luò)接收的數(shù)據(jù)被發(fā)送到至少一個網(wǎng)絡(luò),其中控制組件用于提供關(guān)于路由、接收到的數(shù)據(jù)和/或發(fā)送的數(shù)據(jù)的當前輸入?yún)?shù)到應(yīng)用組件,其中所述應(yīng)用組件包括預(yù)測模塊,其用于評估接收到的數(shù)據(jù)、發(fā)送的數(shù)據(jù)和/或路由的當前輸入?yún)?shù)和/或歷史輸入?yún)?shù),并且其中所述應(yīng)用組件用于基于由預(yù)測模塊在當前輸入?yún)?shù)和/或歷史輸入?yún)?shù)的基礎(chǔ)上作出的預(yù)測輸出用于未來路由配置的預(yù)測配置參數(shù)到控制組件,并且其中控制組件用于在網(wǎng)絡(luò)化計算系統(tǒng)的操作期間基于由應(yīng)用組件輸出的預(yù)測配置參數(shù)動態(tài)地配置和/或重新配置路由。
因此,數(shù)據(jù)在其上流動或通過系統(tǒng)轉(zhuǎn)發(fā)的路由通過應(yīng)用平面上的應(yīng)用組件得到優(yōu)化,而控制平面上的控制組件提供所需數(shù)據(jù)作為優(yōu)化應(yīng)用組件所需的當前輸入?yún)?shù)??刂平M件促進數(shù)據(jù)在其上流過網(wǎng)絡(luò)的路由的配置和/或重新配置,以便根據(jù)性能約束或相對于由需求或網(wǎng)絡(luò)運營商與其它(合法)實體的合同產(chǎn)生的約束優(yōu)化通過此系統(tǒng)的數(shù)據(jù)流。
具體而言,應(yīng)用組件包括預(yù)測模塊。預(yù)測模塊采用由控制組件供應(yīng)的參數(shù)和/或通過監(jiān)測內(nèi)部和/或外部過程供應(yīng)的參數(shù)并且評估這些參數(shù)。控制組件供應(yīng)指示網(wǎng)絡(luò)或其部分的當前狀態(tài)的參數(shù)到應(yīng)用組件。應(yīng)用組件可評估當前輸入?yún)?shù)并且可使用例如存儲于應(yīng)用組件或功能上連接到應(yīng)用組件的存儲組件中的歷史參數(shù)。當前和歷史輸入?yún)?shù)可以是關(guān)于分別地、當前或先前在網(wǎng)絡(luò)中存在的存在于網(wǎng)絡(luò)或網(wǎng)絡(luò)化計算系統(tǒng)中的接收到的數(shù)據(jù)、發(fā)送的數(shù)據(jù)和/或路由的信息。
預(yù)測模塊隨后基于當前輸入?yún)?shù)以及可以是歷史輸入?yún)?shù)的評估來預(yù)測配置參數(shù)。這些預(yù)測配置參數(shù)用于新的或未來的路由配置。這意味著基于可用于預(yù)測模塊的參數(shù),預(yù)測模塊對更好的路由配置如何可服務(wù)于通過網(wǎng)絡(luò)的改進的數(shù)據(jù)流進行預(yù)測。
控制組件使用預(yù)測配置參數(shù)以根據(jù)這些預(yù)測參數(shù)重新配置路由或建立新的路由或從網(wǎng)絡(luò)中移除現(xiàn)有路由。這樣做是為了根據(jù)網(wǎng)絡(luò)的當前狀態(tài)預(yù)測更用于處理通過網(wǎng)絡(luò)的數(shù)據(jù)流或設(shè)置約束的網(wǎng)絡(luò)的未來狀態(tài)。
如同通過使用具有預(yù)測模塊的應(yīng)用組件,這是有利的,有可能基于網(wǎng)絡(luò)的當前狀態(tài)和/或歷史狀態(tài)預(yù)測未來網(wǎng)絡(luò)配置。
在第一實施例中,應(yīng)用組件可以用于以兩個操作模式操作:第一操作模式,其中應(yīng)用組件通過包括在應(yīng)用組件中的監(jiān)測模塊監(jiān)測當前輸入?yún)?shù)和/或評估用于在所述路由上轉(zhuǎn)發(fā)數(shù)據(jù)的約束參數(shù);以及第二操作模式,其中預(yù)測配置參數(shù)被輸出到控制組件。
這基本上意味著在第一操作模式中,應(yīng)用組件監(jiān)測從控制組件中接收到的包含關(guān)于網(wǎng)絡(luò)的當前狀態(tài)的信息的參數(shù)。
監(jiān)測模塊因此接受來自控制組件的信息,同時在第一操作模式中,應(yīng)用組件的預(yù)測模塊未作出或輸出預(yù)測。在此模式中,僅基于從控制組件接收的輸入?yún)?shù)收集信息。并且,可以評估對通過網(wǎng)絡(luò)的數(shù)據(jù)流施加約束的約束參數(shù)。約束參數(shù)例如可以詳述數(shù)據(jù)可以或應(yīng)該在哪條路由上轉(zhuǎn)發(fā)、需要多少資源或多少資源可用于此操作和/或需要改變的路由的其它參數(shù)。
因此第一操作模式也可以被視為網(wǎng)絡(luò)化計算系統(tǒng)的“啟動過程”。此處,獲得并執(zhí)行應(yīng)用模塊的初始配置并且收集所需參數(shù),基于所述參數(shù)作出預(yù)測模塊的第一預(yù)測。在第一操作模式結(jié)束時,預(yù)測模塊/應(yīng)用組件開始輸出預(yù)測配置參數(shù)。
在本發(fā)明的第二實施例中,預(yù)測模塊可實施至少一個預(yù)測模型,所述預(yù)測模型用于根據(jù)時間序列算法和/或時間序列算法的集合作出預(yù)測。
預(yù)測模型因此在預(yù)測模塊中執(zhí)行計算并且為預(yù)測模塊執(zhí)行計算。具體而言,預(yù)測模塊可以包括一個以上或多個預(yù)測模型,其中的每個預(yù)測模型基于當前或歷史輸入?yún)?shù)輸出一個可能的預(yù)測配置參數(shù)候選用于未來網(wǎng)絡(luò)配置。
使用一個以上預(yù)測模型是有利的,因為它允許從多個預(yù)測配置參數(shù)候選中進行選擇并且因此選擇用于未來狀態(tài)或網(wǎng)絡(luò)的最佳預(yù)測。因此,系統(tǒng)變?yōu)檫m應(yīng)于各種環(huán)境并且尤其適應(yīng)于未知的數(shù)據(jù)集。另外,它是可縮放的并且可以在使用系統(tǒng)之前添加/移除模型。
在第三實施例中,當前輸入?yún)?shù)可以是通過監(jiān)測模塊確定的性能指標,并且其中當前/歷史輸入?yún)?shù)可以是當前/歷史性能指標,并且其中監(jiān)測模塊可用于將當前性能指標供應(yīng)到預(yù)測模塊作為到至少一個預(yù)測模型的輸入。
因此,監(jiān)測組件也可以用于從輸入?yún)?shù)性能指標中進行推導(dǎo)。
在第四實施例中,性能指標可包含關(guān)于幀延遲率、抖動率和丟包率、發(fā)射的包、接收的包、接收的字節(jié)、發(fā)射的丟棄、接收的丟棄、發(fā)射的誤差、流計數(shù)發(fā)射的包、接收的包、發(fā)射的字節(jié)以及接收的誤差中的至少一個的信息。
因此,多種信息可以包含于性能指標中并且通過優(yōu)化考慮。
在第五實施例中,應(yīng)用組件可用于根據(jù)約束參數(shù)輸出預(yù)測配置參數(shù)。因此,基于所提供的約束參數(shù),未來網(wǎng)絡(luò)配置可以通過考慮提供用于網(wǎng)絡(luò)的約束尤其定制為滿足網(wǎng)絡(luò)化計算系統(tǒng)的運營商的需要以及協(xié)議和合同。
約束參數(shù)可以是根據(jù)服務(wù)質(zhì)量(quality of service,QoS)和/或服務(wù)許可證協(xié)議(service license agreement,SLA)的動態(tài)策略和/或約束。
在第六實施例中,至少一個預(yù)測模型可以生成至少一個預(yù)測配置參數(shù)候選,其中預(yù)測是基于當前和/或歷史輸入?yún)?shù)針對特定時間點作出的。
預(yù)測配置參數(shù)候選由此是通過使用例如時間序列算法預(yù)測的以用于未來的定義數(shù)目的時間步驟。
根據(jù)本發(fā)明的第七實施例,應(yīng)用組件可以包括加權(quán)模塊,其用于通過基于當前和/或歷史輸入?yún)?shù)定義的加權(quán)參數(shù)對至少一個預(yù)測配置參數(shù)候選進行加權(quán),所述加權(quán)模塊進一步用于輸出至少一個加權(quán)預(yù)測配置參數(shù),和/或其中加權(quán)是基于當前和/或歷史輸入?yún)?shù)的實時評估。評估可采用均方根(root-means-square,RMS)誤差計算或平均誤差計算。
加權(quán)因此允許根據(jù)初始配置或基于存在于應(yīng)用組件中或通過監(jiān)測模塊供應(yīng)的數(shù)據(jù)對由至少一個預(yù)測模型輸出的預(yù)測配置參數(shù)候選進行“加權(quán)”。這可以通過模型的權(quán)重的重新配置以及模型的參數(shù)來促進,例如,通過改變緩沖區(qū)大小、回歸的順序等。模型參數(shù)的調(diào)節(jié)可以通過小批量梯度下降技術(shù)和/或強力技術(shù)實現(xiàn)。舉例來說,如果發(fā)現(xiàn)特定預(yù)測模型適合于特定網(wǎng)絡(luò)配置,那么當基于輸入?yún)?shù)檢測到或假定特定網(wǎng)絡(luò)配置時,預(yù)測配置參數(shù)候選的加權(quán)可以發(fā)生改變,即,應(yīng)用因數(shù)到至少一個預(yù)測模型的輸出以降低或提高此預(yù)測配置參數(shù)候選的重要性。
在第八實施例中,應(yīng)用組件可以包括組合模塊,其用于組合至少一個加權(quán)預(yù)測配置參數(shù)候選與至少一個其它加權(quán)預(yù)測配置參數(shù)候選,組合模塊進一步用于輸出至少一個組合預(yù)測配置參數(shù)。
組合模塊因此允許組合至少一個預(yù)測模型的加權(quán)輸出與隨后可輸出到控制組件的單個預(yù)測配置參數(shù)。基于加權(quán),取決于應(yīng)用于由至少一個預(yù)測模型輸出的預(yù)測配置參數(shù)候選的加權(quán),經(jīng)不同加權(quán)的預(yù)測配置參數(shù)候選在組合期間或多或少受到影響。
在本發(fā)明的第九實施例中,應(yīng)用組件可以包括輸出模塊,其用于對至少一個組合預(yù)測配置參數(shù)執(zhí)行誤差校正,所述輸出模塊進一步用于將至少一個預(yù)測配置參數(shù)輸出到控制組件。
誤差校正是有利的,因為它允許減少誤差,即,減少輸出的預(yù)測配置參數(shù)中的噪聲。
在本發(fā)明的第十實施例中,應(yīng)用組件可以包括更新模塊,其用于在達到特定時間點時針對特定時間點比較至少一個預(yù)測配置參數(shù)候選與當前輸入?yún)?shù)。更新模塊用于使用優(yōu)化算法優(yōu)化至少一個預(yù)測模型和/或其中更新模塊用于重新配置至少一個預(yù)測模型的參數(shù)。
在第十一實施例中,更新模塊用于更新至少通過加權(quán)模塊設(shè)置的權(quán)重。
這允許針對所作出的預(yù)測修改預(yù)測模型和用于預(yù)測模型中的參數(shù)以及動態(tài)地更新用于對預(yù)測配置參數(shù)候選進行加權(quán)的權(quán)重。這可以基于用于先前預(yù)測的輸入?yún)?shù)與由監(jiān)測模塊當前監(jiān)測到的參數(shù)的偏差。這允許對通過網(wǎng)絡(luò)化計算系統(tǒng)轉(zhuǎn)發(fā)的數(shù)據(jù)的改變作出反應(yīng),并且動態(tài)地對待控制的網(wǎng)絡(luò)的當前狀態(tài)進行優(yōu)化。
在第十二實施例中,應(yīng)用組件實施神經(jīng)網(wǎng)絡(luò)或機器學(xué)習。
有利的是,神經(jīng)網(wǎng)絡(luò)和/或機器學(xué)習方法的實施方案允許網(wǎng)絡(luò)化計算系統(tǒng)自主地適應(yīng)于網(wǎng)絡(luò)需求和當前網(wǎng)絡(luò)狀態(tài)并且使其配置適應(yīng)于當前需要或網(wǎng)絡(luò),而無需人工干預(yù)。實際上,機器學(xué)習使用學(xué)習階段(第一操作模式)來學(xué)習哪些需求是通過網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù)必需的,以及在某些條件下網(wǎng)絡(luò)表現(xiàn)如何。在學(xué)習階段完成之后,應(yīng)用組件隨后能夠僅基于控制組件供應(yīng)的信息自主地配置網(wǎng)絡(luò)中的路由。
在學(xué)習階段中,預(yù)測模型是基于控制組件或監(jiān)測模塊供應(yīng)的信息配置的并且隨后用于作出預(yù)測或決策,而并非僅遵循明確編程的指令。機器學(xué)習通常與人工智能和優(yōu)化具有密切關(guān)系,其將方法、理論和應(yīng)用域傳遞到所述領(lǐng)域。機器學(xué)習是設(shè)計和程序設(shè)計明確的采用的,基于規(guī)則的算法是不可行的或?qū)е鲁杀驹黾印W(xué)習可以呈監(jiān)督學(xué)習的形式,其中應(yīng)用組件使用實例輸入和提供到應(yīng)用組件的所需輸出來學(xué)習將輸入映射到輸出的一般規(guī)則。并且,可以促進無監(jiān)督學(xué)習,在例如輸入?yún)?shù)的群組被提供到應(yīng)用組件和預(yù)測模塊的應(yīng)用組件中,在無監(jiān)督學(xué)習中應(yīng)用組件必須確定需要如何處理這些輸入以便實現(xiàn)設(shè)定目標。
在本發(fā)明的意義上神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)并且表示受到中樞神經(jīng)系統(tǒng)啟發(fā)以估計或粗略估計取決于大量輸入的功能的計算模型。人工神經(jīng)網(wǎng)絡(luò)通常呈現(xiàn)為互連神經(jīng)元的系統(tǒng),由于其適應(yīng)性本質(zhì),互連神經(jīng)元的系統(tǒng)根據(jù)輸入計算值并且能夠機器學(xué)習以及圖案識別。在這種情況下神經(jīng)元是處理元件或處理單元并且通常以至少兩層布置,每一層的神經(jīng)元由突觸連接??梢詫?quán)重應(yīng)用于突觸。一層中的神經(jīng)元執(zhí)行計算并且突觸“傳送”計算的結(jié)果到其它層的神經(jīng)元。如果權(quán)重被應(yīng)用于突觸,那么連接到突觸的第一層中的神經(jīng)元的計算結(jié)果在輸入到第二層的連接的神經(jīng)元之前得到操控。然而,僅具有一個層的人工神經(jīng)網(wǎng)絡(luò)也是可能的。
總而言之,機器學(xué)習方法或神經(jīng)網(wǎng)絡(luò)的使用允許形成自主地工作的應(yīng)用組件,所述應(yīng)用組件基于輸入?yún)?shù)調(diào)適其預(yù)測。
在另一方面中,本發(fā)明提供一種用于控制網(wǎng)絡(luò)化計算系統(tǒng)的方法,其中在第一步驟中,連接到至少一個網(wǎng)絡(luò)的至少一個網(wǎng)絡(luò)通信接口從至少一個網(wǎng)絡(luò)接收數(shù)據(jù)以及發(fā)送數(shù)據(jù)到至少一個網(wǎng)絡(luò),在第二步驟中,控制組件配置路由,在所述路由上通過網(wǎng)絡(luò)化計算系統(tǒng)從至少一個網(wǎng)絡(luò)接收的數(shù)據(jù)被發(fā)送到至少一個網(wǎng)絡(luò),其中在第三步驟中控制組件提供關(guān)于路由、接收到的數(shù)據(jù)和/或發(fā)送的數(shù)據(jù)的當前輸入?yún)?shù)到應(yīng)用組件,其中在第四步驟中,應(yīng)用組件的預(yù)測模塊包括預(yù)測模塊,其評估接收到的數(shù)據(jù)、發(fā)送的數(shù)據(jù)和/或路由的當前輸入?yún)?shù)和/或歷史輸入?yún)?shù),并且其中應(yīng)用組件基于由預(yù)測模塊在當前輸入?yún)?shù)和/或歷史輸入?yún)?shù)的基礎(chǔ)上作出的預(yù)測輸出用于未來路由配置的預(yù)測配置參數(shù)到控制組件,并且其中在第五步驟中,控制組件在網(wǎng)絡(luò)化計算系統(tǒng)的操作期間基于由應(yīng)用組件輸出的預(yù)測配置參數(shù)動態(tài)地配置和/或重新配置路由。
在又另一個方面中,本發(fā)明涉及一種計算機程序產(chǎn)品,當在計算系統(tǒng)上執(zhí)行時,所述計算機程序產(chǎn)品用于執(zhí)行如上文概述的方法。
在最后一個方面中,本發(fā)明提供一種系統(tǒng),其包括:通信接口,所述通信接口用于接收數(shù)據(jù)和發(fā)送數(shù)據(jù);控制組件,其中所述控制組件用于配置路由,在所述路由上發(fā)送通過計算系統(tǒng)接收到的數(shù)據(jù),其中所述控制組件用于提供關(guān)于路由、接收到的數(shù)據(jù)和/或發(fā)送的數(shù)據(jù)的當前輸入?yún)?shù)到應(yīng)用組件,其中所述應(yīng)用組件包括預(yù)測模塊,其用于評估接收到的數(shù)據(jù)、發(fā)送的數(shù)據(jù)和/或路由的當前輸入?yún)?shù)和/或歷史輸入?yún)?shù),并且其中所述應(yīng)用組件用于基于由預(yù)測模塊在當前輸入?yún)?shù)和/或歷史輸入?yún)?shù)的基礎(chǔ)上作出的預(yù)測輸出用于未來路由配置的預(yù)測配置參數(shù)到控制組件,并且其中控制組件用于在計算系統(tǒng)的操作期間基于由應(yīng)用組件輸出的預(yù)測配置參數(shù)動態(tài)地配置和/或重新配置路由。
附圖說明
現(xiàn)在將在下文中參考圖式說明本發(fā)明的上述方面和實施例。
圖1示出了本發(fā)明的示意性概述。
圖2更詳細地說明了本發(fā)明的實施例。
圖3說明根據(jù)本發(fā)明的方法。
圖4示出了根據(jù)本發(fā)明的示例性實施方案。
圖5示出了圖1的示例性實施例。
圖6示出了發(fā)明性系統(tǒng)的示例性實施方案計劃。
具體實施方式
一般而言,必須注意的是在本申請案中描述的所有布置、設(shè)備、模塊、組件、模型、元件、單元和構(gòu)件等可以通過軟件或硬件元件或其任何種類的組合實施。通過本申請案中所描述的多個實體執(zhí)行的所有步驟以及描述成將通過各個實體執(zhí)行的功能性意指相應(yīng)實體用于或用于執(zhí)行相應(yīng)步驟和功能性。即使在以下對具體實施例的描述中,將由一般實體執(zhí)行的具體功能性或步驟并未反映在執(zhí)行所述具體步驟或功能性的所述實體的具體詳細元件的描述中,所屬領(lǐng)域的技術(shù)人員也應(yīng)該清楚,這些方法和功能性可以用對應(yīng)的硬件或軟件元件或其任何種類的組合來實施。另外,在多個所描述裝置元件的功能性中實施本發(fā)明的方法以及其多個步驟。
本發(fā)明大體上允許預(yù)測用于例如路由器或負載均衡器等SDN應(yīng)用的網(wǎng)絡(luò)性能指標,因此它們可以根據(jù)預(yù)測而不是預(yù)設(shè)結(jié)果作出決策。
在過去,數(shù)據(jù)科學(xué)家需要檢查歷史性能日志,所述歷史性能日志是其中根據(jù)不同模型或需求記錄對應(yīng)的設(shè)備的性能的數(shù)據(jù)集。隨后,需要作出應(yīng)使用哪個模型來實現(xiàn)最佳性能的最后決定。然而,歷史性能日志并不總是可訪問的或可供使用的。并且,需要人機交互來發(fā)現(xiàn)最佳配置并且極少對配置進行更新。因此,極少發(fā)生網(wǎng)絡(luò)對通過網(wǎng)絡(luò)轉(zhuǎn)發(fā)的數(shù)據(jù)的當前需求的適應(yīng)。
在一個實施例中,本發(fā)明通過開發(fā)機器學(xué)習系統(tǒng)解決了這一問題,所述系統(tǒng)不僅使用一個模型用于預(yù)測網(wǎng)絡(luò)中的路由的未來配置,而且至少在一個實施例中使用若干預(yù)測模型來實現(xiàn)更好的可擴展性且實現(xiàn)了針對網(wǎng)絡(luò)配置以及尤其數(shù)據(jù)通過其發(fā)送和接收的路由的配置作出的預(yù)測的更高精確度。通過實施更新模塊,有可能使用來自預(yù)測的反饋以及預(yù)測配置參數(shù)與當前需求的比較以動態(tài)地且自動地更新網(wǎng)絡(luò)配置而無需人類參與。
尤其當通過網(wǎng)絡(luò)串流傳輸數(shù)據(jù)時,本發(fā)明允許所需網(wǎng)絡(luò)配置的實時預(yù)測,并且因此應(yīng)用組件能夠?qū)㈩A(yù)測配置參數(shù)實時提供給控制組件使得控制組件可以相應(yīng)地在網(wǎng)絡(luò)中重新配置路由。并且,這允許使網(wǎng)絡(luò)配置適應(yīng)于改變,因為例如在復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)中,單個組件可能出故障,并且因此在其上發(fā)送或接收且通過網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù)的路由可能由于那些組件的故障而發(fā)生改變。
另外,在應(yīng)用組件中使用反饋回路,其允許對當前網(wǎng)絡(luò)配置與預(yù)測網(wǎng)絡(luò)配置或其參數(shù)進行比較并且允許進一步改進未來預(yù)測,因為具體而言預(yù)測模型的參數(shù)以及通過加權(quán)單元執(zhí)行的加權(quán)是動態(tài)地適應(yīng)的。舉例來說,通過加權(quán)模塊執(zhí)行的加權(quán)取決于每個模塊的均方根誤差,而預(yù)測模型參數(shù)的改變可取決于強力或小批量梯度下降優(yōu)化。
通過輸出模塊執(zhí)行的誤差校正還允許減少組合預(yù)測配置參數(shù)中的噪聲。
因此,可以通過預(yù)測模塊來評估監(jiān)測系統(tǒng)提供的指標,所述指標可以例如是幀延遲率、抖動率和丟包率,也是用于基于IP的語音傳輸(Voice over IP,VOIP)會話的平均意見分(mean opinion score,MOS)。
圖1示出了根據(jù)本發(fā)明的第一方面的一般設(shè)置。在圖1中,示出了網(wǎng)絡(luò)化計算系統(tǒng)100。網(wǎng)絡(luò)化計算系統(tǒng)包括至少一個網(wǎng)絡(luò)通信接口101。在圖1中,示出了兩個分離的網(wǎng)絡(luò)通信接口101和102。然而,網(wǎng)絡(luò)化計算系統(tǒng)100還可以包含更多通信接口101、102。如果接口用于發(fā)送以及接收數(shù)據(jù),那么網(wǎng)絡(luò)化計算系統(tǒng)也可以僅包括一個網(wǎng)絡(luò)通信接口101。網(wǎng)絡(luò)化計算系統(tǒng)100使用至少一個網(wǎng)絡(luò)通信接口101以接收數(shù)據(jù)103和發(fā)送數(shù)據(jù)104。通過箭頭說明數(shù)據(jù)的接收103和數(shù)據(jù)的發(fā)送104。網(wǎng)絡(luò)化計算系統(tǒng)100可從單個網(wǎng)絡(luò)105發(fā)送數(shù)據(jù)104和接收數(shù)據(jù)103,而且可從一個以上網(wǎng)絡(luò)105、106發(fā)送和接收數(shù)據(jù)。網(wǎng)絡(luò)化計算系統(tǒng)100所連接到的網(wǎng)絡(luò)105、106可以是不同類型的并且可以對它們施加不同物理約束。舉例來說,一個網(wǎng)絡(luò)可以是IPv4網(wǎng)絡(luò),而另一個網(wǎng)絡(luò)可以是IPv6網(wǎng)絡(luò),或者一個網(wǎng)絡(luò)可以是虛擬網(wǎng)絡(luò)而另一個網(wǎng)絡(luò)是物理網(wǎng)絡(luò)。當然,網(wǎng)絡(luò)105、106也可以是相同類型的。
網(wǎng)絡(luò)化計算系統(tǒng)100進一步包括控制組件110??刂平M件110通常是SDN網(wǎng)絡(luò)的控制平面的一部分并且可以包括SDN控制器,例如OpenDaylight??刂平M件110用于配置、改變、重新配置、設(shè)置、移除和添加或建立路由120,在所述路由上通過網(wǎng)絡(luò)化計算系統(tǒng)100從至少一個網(wǎng)絡(luò)105接收的數(shù)據(jù)被發(fā)送到至少一個網(wǎng)絡(luò)106。這意味著網(wǎng)絡(luò)化計算系統(tǒng)100在由控制組件110配置的路由120上從網(wǎng)絡(luò)105、106接收數(shù)據(jù)并且將數(shù)據(jù)轉(zhuǎn)發(fā)到相同網(wǎng)絡(luò)或另一網(wǎng)絡(luò)106。在圖1中通過連接通信接口101和102的粗線示出了示例性路由。當然,在特殊情況中,可能僅存在一條路由120。用于轉(zhuǎn)發(fā)的這些網(wǎng)絡(luò)元件(未示出)可以是橋接器、路由器、交換機并且可能是常規(guī)的物理網(wǎng)絡(luò)設(shè)備或虛擬設(shè)備,例如虛擬交換機(例如,開放式虛擬交換機(open virtual switches,OVS))。
控制組件110用于提供路由120、接收到的數(shù)據(jù)103和/或發(fā)送的數(shù)據(jù)104的當前輸入?yún)?shù)115到應(yīng)用組件130。這意味著表示路由和它們的配置以及關(guān)于發(fā)送、接收和轉(zhuǎn)發(fā)的數(shù)據(jù)的信息可以提供到應(yīng)用組件130,所述應(yīng)用組件隨后能夠評估當前輸入?yún)?shù)115??刂平M件110因此能夠?qū)⑦@些輸入?yún)?shù)提供到應(yīng)用組件130。另外,控制組件110也可以提供關(guān)于網(wǎng)絡(luò)元件的配置的信息,并且具體而言輸入?yún)?shù)包含關(guān)于用于網(wǎng)絡(luò)化計算系統(tǒng)中的路由的網(wǎng)絡(luò)組件的配置的信息。在一個實施例中,控制組件110提供性能指標到應(yīng)用組件130。
應(yīng)用組件130進一步包括預(yù)測模塊140,所述預(yù)測模塊用于評估當前輸入?yún)?shù)115。另外,應(yīng)用組件也可以評估歷史輸入?yún)?shù)141和/或每個模型的先前的預(yù)測,這意味著這些參數(shù)先前由控制組件110提供到應(yīng)用組件130并且存儲于應(yīng)用組件130或預(yù)測模塊140中。應(yīng)用組件130可以因此包括促進這些歷史輸入?yún)?shù)141的存儲的存儲單元。具體而言,歷史輸入?yún)?shù)可以含有關(guān)于接收到的數(shù)據(jù)103、發(fā)送的數(shù)據(jù)104和/或路由120的信息。
應(yīng)用組件130進一步用于基于由預(yù)測模塊140在當前參數(shù)115和/或歷史輸入?yún)?shù)141的基礎(chǔ)上作出的預(yù)測輸出用于未來路由配置的預(yù)測配置參數(shù)150到控制組件110。
控制組件110隨后用于動態(tài)地配置和/或重新配置路由120,這意味著在網(wǎng)絡(luò)化計算系統(tǒng)100的操作期間,基于通過應(yīng)用組件130輸出的預(yù)測配置參數(shù)150,控制組件110可建立新路由120或移除現(xiàn)有路由120或簡單地改變路由120的參數(shù)。
在圖1中,虛線表示通過控制組件110收集的和/或供應(yīng)到控制組件110的信息。此信息可以衍生自路由120,而且衍生自至少一個網(wǎng)絡(luò)通信接口101、102。類似地,虛線表示通過控制組件110執(zhí)行的路由120和/或至少一個網(wǎng)絡(luò)通信接口101、102的配置/重新配置。關(guān)于路由120和/或至少一個網(wǎng)絡(luò)通信接口101、102的信息可以已經(jīng)呈當前輸入?yún)?shù)115的形式。并且,可以使用預(yù)測配置參數(shù)150直接執(zhí)行路由120和/或至少一個網(wǎng)絡(luò)通信接口101、102的配置/重新配置。尤其是,控制組件110可簡單地將關(guān)于路由120和/或至少一個網(wǎng)絡(luò)通信接口101、102的信息作為當前輸入?yún)?shù)115或其部分轉(zhuǎn)發(fā)到應(yīng)用組件130。并且,控制組件110可簡單地將預(yù)測配置參數(shù)150作為配置參數(shù)轉(zhuǎn)發(fā)到路由120和/或至少一個網(wǎng)絡(luò)通信接口101、102。當然,替代于路由120和/或至少一個網(wǎng)絡(luò)通信接口101、102,其它網(wǎng)絡(luò)實體可將信息供應(yīng)到控制組件110和/或可以通過控制組件110進行配置。
圖2示出了應(yīng)用組件130的更詳細的視圖。如先前所陳述,應(yīng)用組件130可以兩種操作模式操作。在第一操作模式中,應(yīng)用組件130通過監(jiān)測模塊200監(jiān)測當前輸入?yún)?shù)115。優(yōu)選地,監(jiān)測模塊200包括在應(yīng)用組件130中并且優(yōu)選地評估網(wǎng)絡(luò)數(shù)據(jù)包的第一幀。然而,還可以是可能的是監(jiān)測模塊200提供為與應(yīng)用組件130分開的模塊。
應(yīng)用組件130還能夠評估約束參數(shù)205,所述約束參數(shù)供應(yīng)到應(yīng)用組件130。約束參數(shù)205定義規(guī)則,所述規(guī)則定義數(shù)據(jù)如何在路由120上轉(zhuǎn)發(fā)。第一操作模式也可以被視為啟動過程,其中應(yīng)用組件收集關(guān)于網(wǎng)絡(luò)化計算系統(tǒng)100的當前設(shè)置的信息并且用于初始化由應(yīng)用組件130使用的參數(shù)。舉例來說,應(yīng)用組件130可收集和存儲通過控制組件110輸入到應(yīng)用組件130的輸入?yún)?shù),所述輸入?yún)?shù)隨后用作歷史輸入?yún)?shù)141以用于由預(yù)測模塊140作出預(yù)測。
在第二操作模式中,應(yīng)用組件130隨后將預(yù)測配置參數(shù)150輸出到控制組件110。
預(yù)測模塊140還包括或?qū)嵤┲辽僖粋€預(yù)測模型210。至少一個預(yù)測模塊210用于根據(jù)時間序列算法作出預(yù)測。雖然圖2示出了多個預(yù)測模型210,但是必須理解的是這些預(yù)測模塊也可以是不同設(shè)置、類型和/或配置的。舉例來說,預(yù)測模塊可根據(jù)移動平均計算、指數(shù)平滑計算、自動回歸計算和/或自回歸整合移動平均計算和/或任何其它模型(時間序列算法、模式等)作出預(yù)測。因此,圖2中所示的預(yù)測模塊210可各自根據(jù)不同時間序列算法執(zhí)行不同預(yù)測或者它們可組合不同的時間序列算法。
監(jiān)測模塊200可進一步用于根據(jù)從控制組件110供應(yīng)的輸入?yún)?shù)115確定性能指標215和/或OVS指標。監(jiān)測組件進一步用于將這些性能指標215和/或OVS指標提供給預(yù)測模塊。所述指標隨后由至少一個預(yù)測模型210作為輸入使用?;诖溯斎?,即,基于性能指標215和/或OVS指標,至少一個預(yù)測模型210隨后能夠提供預(yù)測。在下文中,性能指標215也可以是OVS指標。
性能指標可以包含關(guān)于幀延遲率、抖動率、丟包率、MOS中的至少一個的信息。OVS指標可以包含關(guān)于發(fā)射的包、接收的包、接收的字節(jié)、發(fā)射的丟棄、接收的丟棄、發(fā)射的誤差、流計數(shù)發(fā)射的包、發(fā)射的字節(jié)和/或接收的誤差中的至少一個的信息。
然而,由應(yīng)用組件130使用的預(yù)測模型210不是靜態(tài)地提供的,而是它們可以在網(wǎng)絡(luò)計算系統(tǒng)100的啟動過程之前視需要動態(tài)地移除或添加。通常,存在至少一個預(yù)測模型210。然而,在移除所有預(yù)測模型210的情況下,使用通過最后一個預(yù)測模型210作出的最后一個預(yù)測。沒有預(yù)測模型210的預(yù)測模塊140以所謂的反應(yīng)性模式工作,這可以有益于專用的數(shù)據(jù)集和約束參數(shù)205。舉例來說,當數(shù)據(jù)集在大部分時間下穩(wěn)定時,例如,在丟包率在大部分時間中大約為~0%的情況下,反應(yīng)性模式將更好的工作。在其它情況中,如同證券交易所,反應(yīng)性模型將不工作,因為存在每一滴答聲(即,定義的時間步驟)的許多改變。主要想法是將反應(yīng)性模型插入到預(yù)測模型210的列表中,因此在“穩(wěn)定”數(shù)據(jù)集情況下,系統(tǒng)自動使用反應(yīng)性模型,并且在“噪聲”數(shù)據(jù)集情況下,將使用其它模型。
然而,通常,預(yù)測模塊140包括一個以上預(yù)測模型210。根據(jù)例如服務(wù)質(zhì)量或服務(wù)許可證協(xié)議,約束參數(shù)205可以是動態(tài)策略和/或約束。應(yīng)用組件130因此根據(jù)約束參數(shù)205輸出預(yù)測配置參數(shù)150,使得由控制組件110執(zhí)行的應(yīng)答由應(yīng)用組件130供應(yīng)的預(yù)測配置參數(shù)150的配置是根據(jù)約束參數(shù)205。
至少一個預(yù)測模型210生成至少一個預(yù)測配置參數(shù)候選211,其通過將預(yù)測模型210連接到預(yù)測配置參數(shù)候選211的箭頭象征。針對特定時間點且基于當前性能指標215和/或歷史輸入?yún)?shù)141作出預(yù)測。預(yù)測配置參數(shù)候選211優(yōu)選地也存儲為歷史輸入?yún)?shù)141的一部分(如通過連接預(yù)測配置參數(shù)候選211與歷史輸入?yún)?shù)141的對應(yīng)的箭頭所指示)。
應(yīng)用組件130還包括加權(quán)模塊220。加權(quán)模塊220對由至少一個預(yù)測模型210輸出的至少一個預(yù)測配置參數(shù)候選211以加權(quán)參數(shù)進行加權(quán)。加權(quán)參數(shù)還基于性能指標215(使用實線的箭頭)和/或歷史輸入?yún)?shù)141(使用虛線的箭頭)定義。歷史輸入?yún)?shù)141也可以是先前供應(yīng)到應(yīng)用組件的歷史性能指標。
加權(quán)模塊220還用于輸出至少一個加權(quán)預(yù)測配置參數(shù)候選到組合模塊230。通過加權(quán)模塊220執(zhí)行的加權(quán)尤其基于性能指標215和/或歷史輸入?yún)?shù)141的實時評估執(zhí)行。
組合模塊230組合至少一個加權(quán)預(yù)測配置參數(shù)候選與至少一個其它加權(quán)預(yù)測配置參數(shù)候選(如果可供使用的話)。如果僅存在一個加權(quán)預(yù)測配置參數(shù)候選,那么組合模塊簡單地轉(zhuǎn)發(fā)加權(quán)預(yù)測配置參數(shù)候選為組合預(yù)測配置參數(shù)。否則的話,組合模塊230輸出兩個或兩個以上加權(quán)預(yù)測配置參數(shù)候選的組合作為組合預(yù)測配置參數(shù)。
另外,應(yīng)用組件包括輸出模塊240。輸出模塊用于對至少一個組合預(yù)測配置參數(shù)執(zhí)行誤差校正。輸出模塊240進一步用于在控制組件110的誤差校正之后輸出至少一個預(yù)測配置參數(shù)150。
更新模塊250也可用于比較針對特定時間點的至少一個預(yù)測配置參數(shù)候選211,即,這意味著當達到初始作出預(yù)測的特定時間點時先于通過監(jiān)測模塊200供應(yīng)的性能指標215預(yù)測的參數(shù)。更新模塊250可因此采用歷史輸入?yún)?shù)141。基于此比較且尤其基于預(yù)測配置參數(shù)與當前性能指標的偏差,更新模塊優(yōu)化至少一個預(yù)測模型210的參數(shù)。因此,更新模塊250可以采用優(yōu)化算法。更新模塊250可進一步重新配置至少一個預(yù)測模型210的參數(shù),而且重新配置加權(quán)模塊220。這意味著在通過更新模塊250執(zhí)行更新之后,預(yù)測模型評估饋送到至少一個預(yù)測模型210的性能指標。用于優(yōu)化模型參數(shù)的算法可以是小批量梯度下降和/或強力算法。小批量梯度下降算法試圖通過發(fā)現(xiàn)本地最小(梯度)而使誤差率降到最小。隨后它重新配置模型,因此它們假設(shè)為更精確的。強力算法試圖檢查所有的可能性,而當誤差小于一些微小值(例如,0.005)時小批量停止?;趤碜愿履K250的輸出,同樣可以改變輸出模塊240的參數(shù),例如,以適應(yīng)誤差校正。
舉例來說,在移動平均預(yù)測中存在緩沖區(qū)??杉僭O(shè)將緩沖區(qū)大小設(shè)置成20。在數(shù)據(jù)穩(wěn)定的情況下此緩沖區(qū)大小的優(yōu)化將減少并且在噪聲數(shù)據(jù)的情況下它將增大。相同情況也用于移動中間預(yù)測。在指數(shù)平滑預(yù)測的情況下,α變?yōu)榕c當前值相比對歷史更精確或反之亦然。舉例來說,通過自回歸整合移動平均(autoregressive integrated moving average,ARIMA)預(yù)測,可以配置p、d、q參數(shù)。在自回歸中,例如,取決于誤差,順序可以從5到3或7改變。
圖3示出了根據(jù)本發(fā)明的第二方面的原理方法。
在第一步驟S301中,連接到至少一個網(wǎng)絡(luò)105、106的網(wǎng)絡(luò)通信接口101、102從至少一個網(wǎng)絡(luò)105、106接收數(shù)據(jù)103以及發(fā)送數(shù)據(jù)104到至少一個網(wǎng)絡(luò)105、106。
在第二步驟S302中,控制組件110配置路由120,在所述路由上從至少一個網(wǎng)絡(luò)105接收的數(shù)據(jù)被發(fā)送到至少一個網(wǎng)絡(luò)106。
在第三步驟S303中,控制組件110提供路由120、接收到的數(shù)據(jù)和/或發(fā)送的數(shù)據(jù)的當前輸入?yún)?shù)115到應(yīng)用組件130。
在第四步驟S304中,應(yīng)用組件130的預(yù)測模塊140包括預(yù)測模塊,其評估接收到的數(shù)據(jù)103、發(fā)送的數(shù)據(jù)104和/或路由120的當前輸入?yún)?shù)115和/或歷史輸入?yún)?shù)141,并且其中應(yīng)用組件130輸出用于未來路由配置的預(yù)測配置參數(shù)150到控制組件110。
在第五步驟S305中,控制組件110基于由應(yīng)用組件130輸出的預(yù)測配置參數(shù)動態(tài)地配置和/或重新配置路由120。
第六步驟S306指示方法步驟S301-S305在網(wǎng)絡(luò)化計算系統(tǒng)100的操作期間是重復(fù)的。
更具體地,本發(fā)明涉及SDN環(huán)境,其中基于軟件的組件,例如,應(yīng)用組件或SDN應(yīng)用接收來自監(jiān)測組件或監(jiān)測系統(tǒng)200的性能指標。舉例來說,應(yīng)用組件旨在改進網(wǎng)絡(luò)化計算系統(tǒng)100中的路由或受控制組件110控制的網(wǎng)絡(luò)組件的負載平衡。舉例來說,應(yīng)用組件130旨在根據(jù)約束參數(shù)(例如,角色與職責),同時考慮進入指標215(例如,性能和/或OVS指標)作出更好的決策。例如,應(yīng)用組件可以主動地改變類別選擇,這例如允許使用網(wǎng)絡(luò)中的更便宜的鏈路,例如,數(shù)字訂戶線(digital subscriber line,DSL)替代昂貴的多協(xié)議標簽交換(multi-protocol label switching,MPLS),同時保證服務(wù)質(zhì)量(quality of service,QoS)和服務(wù)許可證協(xié)議(service license agreement,SLA)。
替代于現(xiàn)有技術(shù)方法,通過應(yīng)用組件130作出的決策不是僅取決于而是可以取決于基于基本試探法的決策,例如,預(yù)定規(guī)則或簡單的靜態(tài)模型,并且可以是對動態(tài)環(huán)境中的改變敏感的,例如,復(fù)雜的網(wǎng)絡(luò)基礎(chǔ)設(shè)施或所謂的“云”環(huán)境。
本發(fā)明因此使用時間序列分析作為機器學(xué)習技術(shù),這允許根據(jù)預(yù)定義邏輯的未來值的預(yù)測。本發(fā)明所使用的預(yù)測模型是移動平均、指數(shù)平滑、自回歸計算、自回歸整合移動平均等等。因此,數(shù)據(jù)科學(xué)家不再需要使用不同模型檢查性能日志或數(shù)據(jù)集以最后選擇合適的模型,而是通常使用多個模型,并且整合預(yù)測模型210的結(jié)果以接收針對當前情況的最佳結(jié)果。
因此,可以規(guī)避使用預(yù)定義的且僅很少更新的單個模型的問題以使網(wǎng)絡(luò)化計算系統(tǒng)適應(yīng)未知的數(shù)據(jù),并且適應(yīng)動態(tài)環(huán)境,這是因為本發(fā)明允許自主地且自動地更新和調(diào)節(jié)配置。因此,本發(fā)明提供一種混合方法,所述方法組合若干預(yù)測模型210而不是單個靜態(tài)模型。這改進了所產(chǎn)生的預(yù)測參數(shù)的精確性。具體而言,混合模型實時預(yù)測網(wǎng)絡(luò)性能同時使實時在線預(yù)測誤差降到最小。本發(fā)明不僅預(yù)測用于下次步驟的短期指標,而且預(yù)測長期指標,長期指標意味著與下次步驟相比的更加未來的指標(時間步驟還可以被稱作“滴答”,其定義特定的時間周期),并且用于自動調(diào)節(jié)。然而,本發(fā)明具體來說涉及短期預(yù)測。
具體而言,本發(fā)明用監(jiān)測模塊200處理數(shù)據(jù)流的監(jiān)測。監(jiān)測模塊產(chǎn)生指標,例如,性能指標,例如,幀延遲率、抖動率、丟包率、用于基于IP的語音傳輸(Voice over IP,VoIP)通信的平均意見分(mean opinion score,MOS)等。
本發(fā)明允許在時間t處接收和評估性能指標值,同時針對此指標在時間t+k預(yù)測所述值,同時1≤k≤∞。在第一操作模式中,如上文所概述,應(yīng)用組件以預(yù)定義時間的聚集性能指標開始。這也可以被視為用于機器學(xué)習方法的培訓(xùn)階段。在此階段,也可以確定應(yīng)該使用哪種預(yù)測模型,預(yù)測模塊的初始參數(shù)應(yīng)該如何設(shè)置,應(yīng)該如何應(yīng)用權(quán)重以及應(yīng)該應(yīng)用多少權(quán)重。舉例來說,可以通過使用均方根誤差或平均絕對誤差計算來實施加權(quán)。
并且,在此第一操作模式期間,可以使用如同小批量梯度下降算法或強力算法等算法來更新(或“調(diào)節(jié)”)預(yù)測模塊的參數(shù)。并且,可以決定的是通過輸出模塊240執(zhí)行何種誤差校正。舉例來說,可以決定不執(zhí)行誤差校正,執(zhí)行特定誤差校正或根據(jù)多個歷史結(jié)果的平均誤差來校正誤差。
根據(jù)本發(fā)明,關(guān)于根據(jù)本發(fā)明的應(yīng)用組件130的設(shè)置的決策是基于監(jiān)測指標的評估在第一操作階段期間自動執(zhí)行的。在此過程中,可以執(zhí)行其它誤差校正,例如,可以使用均方根誤差校正、平均絕對誤差校正等。
圖4更詳細地示出了圖2中說明的本發(fā)明。
此處,監(jiān)測模塊200輸出指標值到應(yīng)用組件130并且尤其到標記為Mi,t-1的預(yù)測模型210,其中ⅰ是預(yù)測模型的數(shù)目,其與時間t-1相關(guān),同時1≤i<n。預(yù)測模型210產(chǎn)生標記為PVi,t+k的預(yù)測配置參數(shù)候選211,其中ⅰ是產(chǎn)生針對時間t+k的預(yù)測配置參數(shù)候選的預(yù)測模型的數(shù)目,同時1≤k<∞。預(yù)測配置參數(shù)候選211隨后通過權(quán)重DWi,t-1進行加權(quán),其表示在時間t-1處預(yù)測模型i的動態(tài)權(quán)重。
加權(quán)預(yù)測配置參數(shù)候選隨后在組合模塊230中組合為“混合模型t+k”并且誤差校正值εt-1在點401處進一步組合用于執(zhí)行誤差校正,其中針對時間t-1誤差校正值是εt-1,以產(chǎn)生預(yù)測配置參數(shù)150或至少一個在線混合預(yù)測值。
圖4還示出了評估器402,其可以是更新模塊250的一部分,其可以評估通過監(jiān)測模塊200提供的針對時間t的指標值“指標值t”,并且其還可以評估預(yù)測配置參數(shù)候選211(PVi,t+k)以產(chǎn)生平均誤差值MEi,t。平均誤差值MEi,t表示在時間t處具有由監(jiān)測模塊200提供的性能指標指標值t的預(yù)測配置參數(shù)候選的最新n個結(jié)果的平均誤差。誤差校正可以是在時間t處用于模型ⅰ的均方根誤差(root-means-square error,RMSE)或平均絕對誤差(mean absolute error,MAE)計算的結(jié)果。調(diào)節(jié)實體404、405說明更新模塊250的更新功能或調(diào)節(jié)功能,而實體404更新應(yīng)用于預(yù)測配置參數(shù)候選211的權(quán)重并且實體405更新預(yù)測模型210的參數(shù)。
因此,本發(fā)明允許當提供在時間t處的性能指標值指標值t時的實時預(yù)測。模型Mi,t-1預(yù)測針對時間t+k的指標值PVi,t+k?;旌夏P?sub>t+k被定義為:
混合模型的誤差噪聲可以被定義為:
在線混合預(yù)測t+k表示供應(yīng)到控制組件110的輸出并且因此表示由輸出模塊240輸出的預(yù)測配置參數(shù)150。在時間t處,平均誤差MEi,t是通過以兩個公式中的一個比較最新預(yù)測計算的:
和/或
這些平均誤差將使得能夠動態(tài)地更新預(yù)測模型210和它們的參數(shù)以及通過加權(quán)模塊220應(yīng)用的權(quán)重。圖4中的虛線表示反饋線。實際值j表示實際指標值,這是與預(yù)測值相比的,即,與用于預(yù)測模型i的預(yù)測配置參數(shù)候選相比的。
權(quán)重的更新也是基于平均誤差執(zhí)行的并且預(yù)測模型210可以根據(jù)它們的平均誤差分類,其中最低平均誤差可以定義為最佳的。因此,權(quán)重可以如下定義和更新:
也可以例如通過執(zhí)行以下計算對權(quán)重進行歸一化:
其中,
為了更新預(yù)測模型210,舉例來說,可以使用預(yù)測模型使用的緩沖區(qū)大小或通過預(yù)測模型執(zhí)行的計算的順序、小批量梯度下降算法或者可以應(yīng)用強力技術(shù)以使誤差降到最小同時改變至少一個預(yù)測模型的參數(shù)。
舉例來說,對于給定組m值,在指數(shù)平滑的情況下:
PVj=(1-∝)*歷史+(∝)*最后值
參數(shù)α,0≤α≤1可以改變,例如,改變了0.05,并且參數(shù)α可以更新使得產(chǎn)生最小均方根誤差。
可以執(zhí)行誤差校正以修復(fù)應(yīng)用組件130的輸出中的噪聲誤差,例如,方法是通過下式計算均方根誤差或平均絕對誤差(mean absolute error,MAE):
εt=ME混合,t=RMSE混合,t或MAE混合,t
總而言之,在本發(fā)明中可以在若干已知時間序列算法的集合中使用在線混合模型以針對短期(時間步驟的下一個滴答)和長期(下k個滴答)近實時預(yù)測網(wǎng)絡(luò)性能指標。此預(yù)測可以通過對可變網(wǎng)絡(luò)進行主動優(yōu)化的SDN應(yīng)用(例如,路由器或負載均衡器)使用。本發(fā)明提供全自動啟動過程,而且可以使用在線反饋調(diào)節(jié)自動評估過程中的模型和權(quán)重。也可以提供混合模型預(yù)測的自動誤差校正。
本發(fā)明的一些益處在于處理在線串流數(shù)據(jù)、近實時預(yù)測的能力、不僅預(yù)測指標的短期值而且預(yù)測指標的長期值的能力、作用于例如網(wǎng)絡(luò)等具有未知的行為的可變環(huán)境的能力,以及替代單個模型使用混合方法(若干預(yù)測模型的集合以實現(xiàn)更多的可擴展性和更好的精確性)的能力。
圖5示出了圖1中所示的實施例的示例性實施例,并且具體而言是其特定實施方案。相同元件由相同參考標號所指代。在圖5中示出了可以是WAN虛擬化(參見下文)的網(wǎng)絡(luò)計算系統(tǒng)100,其具有單個網(wǎng)絡(luò)通信接口102,例如,vSwitch,即,虛擬交換機。虛擬交換機或開放式虛擬交換機(open virtual switch,OVS)通常是分布式虛擬多層交換機。vSwitch的主要目的是提供用于硬件虛擬化環(huán)境的交換堆棧,同時支持用于計算機網(wǎng)絡(luò)的多個協(xié)議和標準。還示出了控制組件110并且具體而言所述控制組件表示SDN控制器,例如,OpenDaylight。在這種情況下應(yīng)用組件130尤其是具有(混合)預(yù)測模塊140的SDN應(yīng)用。優(yōu)選地存儲的歷史輸入?yún)?shù)141是根據(jù)歷史滑動窗口的預(yù)測值和指標。儀表盤組件,其具體而言是用戶可訪問的,允許配置約束參數(shù)205。監(jiān)測模塊200可以是外部監(jiān)測系統(tǒng)570的一部分以測量性能指標571。網(wǎng)絡(luò)計算系統(tǒng)100可以根據(jù)例如接收到的數(shù)據(jù)103的網(wǎng)絡(luò)數(shù)據(jù)包的第一幀確定關(guān)于接收到的數(shù)據(jù)103的各種信息,例如,內(nèi)容的類型、服務(wù)類型(type of service,TOS)、優(yōu)先權(quán)等。在此實例中當前輸入?yún)?shù)115是來自O(shè)VS的數(shù)據(jù),例如,OVS指標和第一幀信息。在這種情況下路由120的重新配置和預(yù)測配置參數(shù)是針對OVS指標和OVS的新規(guī)則的設(shè)置的請求,例如,關(guān)于將使用哪條路徑來發(fā)送數(shù)據(jù)104。廣域網(wǎng)(Wide Area Network,WAN)虛擬化嘗試通過分配低成本W(wǎng)AN鏈路基于流平衡負載,同時使用動態(tài)約束確保服務(wù)質(zhì)量(quality of service,QoS)。
舉例來說,對于VOIP呼叫,約束參數(shù)可以是:最大幀延遲150ms、最大抖動是30ms,并且最大丟包率是1%。一旦違反這些約束,則流繞行到另一鏈路,即,重新配置路由120。舉例來說,查看在時間i處的每個預(yù)測模型211的預(yù)測并且當超過標準時,例如,幀延遲>=150ms時,設(shè)置成1。隨后查看在時間i+1處的實際值并且檢查重路由決策是否正確。假定幀延遲的移動平均的緩沖區(qū)是50、30、80、100、30、70、10、120、50和130。在這種情況下,移動平均預(yù)測值是67ms。在這種情況下,所述系統(tǒng)將不會重路由(67ms小于150ms)現(xiàn)存流。在若干滴答之后,指標值超過150ms,隨后系統(tǒng)將重路由,但是已經(jīng)太晚。在它是視頻串流的情況下,可以發(fā)生短時的凍結(jié)。另一方面,在線混合模型可以預(yù)測所述值將是200ms。因此,所述流必須立即路由,因此在視頻中將不存在中斷。
圖6示出了發(fā)明性系統(tǒng)的示例性實施方案計劃。示出了WAN虛擬化600,其接收或生成性能和開放式vSwitch(Open vSwitch,OVS)指標以及動態(tài)策略和約束。駐留在應(yīng)用級上的路徑選擇插件601接收性能和開放式vSwitch(Open vSwitch,OVS)指標作為輸入,以及第一數(shù)據(jù)包幀,其包含關(guān)于例如服務(wù)類型(type of service,TOS)的服務(wù)信息。路徑選擇插件601可以是應(yīng)用組件130或可以是應(yīng)用組件130的一部分。服務(wù)信息也可以單獨地供應(yīng)。路徑選擇插件601包括在線混合預(yù)測模型602,所述模型還接收性能和開放式vSwitch(Open vSwitch,OVS)指標作為輸入來輸出預(yù)測指標并且將它們供應(yīng)到基于情境的路由(Context Based Routing,CBR)引擎603,所述模型還接受動態(tài)策略和約束。CBR引擎603可以基于“Drools”,其中“Drools”是具有基于規(guī)則引擎的轉(zhuǎn)發(fā)和反向鏈接推斷的企業(yè)規(guī)則管理系統(tǒng)(business rule management system,BRMS),也被稱作生產(chǎn)規(guī)則系統(tǒng),其使用Rete算法(用于實施生產(chǎn)規(guī)則系統(tǒng)的模式匹配算法)的增強型實施方案?!癉rools”支持JSR-94(用于Java規(guī)則引擎API的Java規(guī)范請求)標準以用于其企業(yè)規(guī)則引擎和企業(yè)框架以用于在組織、應(yīng)用或服務(wù)中的企業(yè)策略的構(gòu)造、維護和推行。CBR引擎603可隨后輸出配置參數(shù)用于路由120。它可輸出“不建議”,這意味著基于所供應(yīng)的信息應(yīng)用組件130并未看到對路由120的重新配置的需要。然而,重新配置可以是基于來自其它應(yīng)用組件的輸出可取的。CBR引擎603也可以輸出“建議路徑”,數(shù)據(jù)應(yīng)該在“建議路徑”上轉(zhuǎn)發(fā)。此外,CBR引擎603可輸出有助于數(shù)據(jù)的重路由和/或路由120的重新配置的命令,尤其是基于約束以及性能指標的預(yù)測。此信息也可以反饋給CBR引擎603并且用作歷史配置參數(shù)141。
在更一般的實施例中,本發(fā)明也可以用于不涉及網(wǎng)絡(luò)連接的領(lǐng)域。舉例來說,在醫(yī)學(xué)中,可以監(jiān)測患者并且可以提供例如體溫、高血壓、血氧合水平等指標。如果造成例如心跳驟停等疾病的這些指標的閾值的一些知識是可供使用的,那么發(fā)明性解決方案(或所述混合模型)將使用預(yù)測模型和調(diào)節(jié)技術(shù)的集合預(yù)測給定指標的未來值。因此,可以通過指標的預(yù)測來預(yù)測疾病或其發(fā)生。
對于貿(mào)易相關(guān)實施方案,可以例如在證券交易所中設(shè)想類似系統(tǒng)。本發(fā)明將使用預(yù)測模型和調(diào)節(jié)技術(shù)的集合預(yù)測給定股票的未來價值。因此可以提供將對股票采取何種措施的選擇方案。
在云環(huán)境中,可以決定何時根據(jù)例如CPU、內(nèi)存使用、I/O等一些應(yīng)用指標的預(yù)測按尺寸放大/超尺寸放大一些虛擬機。
因此,在一個實施例中本發(fā)明提供一種計算系統(tǒng),其包括:通信接口,所述通信接口用于接收數(shù)據(jù)和發(fā)送數(shù)據(jù);控制組件,其中所述控制組件用于配置路由,在所述路由上發(fā)送接收到的數(shù)據(jù),其中所述控制組件用于提供路由、接收到的數(shù)據(jù)和/或發(fā)送的數(shù)據(jù)的當前輸入?yún)?shù)到應(yīng)用組件,其中所述應(yīng)用組件包括預(yù)測模塊,其用于評估接收到的數(shù)據(jù)、發(fā)送的數(shù)據(jù)和/或路由的當前輸入?yún)?shù)和/或歷史輸入?yún)?shù),并且其中所述應(yīng)用組件用于基于由預(yù)測模塊在當前輸入?yún)?shù)和/或歷史輸入?yún)?shù)的基礎(chǔ)上作出的預(yù)測輸出用于未來路由配置的預(yù)測配置參數(shù)到控制組件,并且其中控制組件用于在計算系統(tǒng)的操作期間基于由應(yīng)用組件輸出的預(yù)測配置參數(shù)動態(tài)地配置和/或重新配置路由。
已經(jīng)結(jié)合本文中的各種實施例描述本發(fā)明。然而,所附實施例的其它變化形式可由所屬領(lǐng)域的技術(shù)人員從圖式、揭示內(nèi)容和所附權(quán)利要求書的研究中通過實踐所主張的本發(fā)明而理解并實現(xiàn)。在權(quán)利要求書中,詞語“包括”不排除其它元素或步驟,不定冠詞“一”不排除多個。單個處理器或其它單元可以實現(xiàn)權(quán)利要求中列舉的若干項目的功能。在僅憑某些措施被記載在相互不同的從屬權(quán)利要求書中這個單純的事實并不意味著這些措施的結(jié)合不能被有效地使用。計算機程序可存儲或分發(fā)到合適的介質(zhì)上,例如與其它硬件一起或者作為其它硬件的部分提供的光存儲介質(zhì)或者固態(tài)介質(zhì),還可以以其它形式例如通過因特網(wǎng)或者其它有線或無線電信系統(tǒng)分發(fā)。