隨著電子服務(例如,搜索服務、電子郵件服務、社交聯(lián)網(wǎng)服務、云計算服務,等等)繼續(xù)擴展,電子服務的提供商操作設備的網(wǎng)絡以提供電子服務。然而,由于個體網(wǎng)絡內(nèi)的大量互連且依賴的設備,常常使提供商難以通過高效的且可靠的方式連續(xù)地操作網(wǎng)絡。例如,網(wǎng)絡內(nèi)的交換機設備可能負責將消息從源設備傳遞到目的地設備并且可能不能夠在給定時刻傳遞消息,這是因為在該給定時刻,消息要經(jīng)由交換機設備被傳遞時,維護并更新交換機設備的應用可能已經(jīng)禁用了交換機設備的功能中的至少一些功能,例如使得它能夠接收固件更新。因此,網(wǎng)絡可能經(jīng)歷可能影響網(wǎng)絡的效率和可靠性的中斷。
此外,多個應用可能試圖同時控制網(wǎng)絡設備的狀態(tài),從而導致狀態(tài)沖突。例如,第一應用可能試圖通過交換機設備路由業(yè)務,同時第二應用試圖關閉交換機設備使得它能夠接收更新。
技術實現(xiàn)要素:
在此所描述的技術和/或系統(tǒng)實現(xiàn)了網(wǎng)絡管理服務,該網(wǎng)絡管理服務被配置為讀取和寫入針對各個應用(例如網(wǎng)絡管理應用)的網(wǎng)絡的狀態(tài),使得應用能夠獨立地操作。網(wǎng)絡管理服務被配置為讀取觀測網(wǎng)絡狀態(tài)(例如,針對網(wǎng)絡的個體狀態(tài)變量的值),并且向應用提供觀測網(wǎng)絡狀態(tài)。隨后,網(wǎng)絡管理服務從應用接收建議網(wǎng)絡狀態(tài),其中每個建議網(wǎng)絡狀態(tài)提議對狀態(tài)變量的期望值(例如,觀測值或當前值)的至少一個改變。網(wǎng)絡管理服務然后被配置為使用狀態(tài)依賴關系圖來確定在建議網(wǎng)絡狀態(tài)之間是否存在狀態(tài)沖突并且定義策略是否被建議網(wǎng)絡狀態(tài)違反。最后,網(wǎng)絡管理服務被配置為通過將遵守定義策略的非沖突的建議網(wǎng)絡狀態(tài)合并來生成目標網(wǎng)絡狀態(tài),并且基于所生成的目標網(wǎng)絡狀態(tài)來更新(例如寫入)網(wǎng)絡狀態(tài)(例如,將網(wǎng)絡從觀測網(wǎng)絡狀態(tài)或當前網(wǎng)絡狀態(tài)改變到目標網(wǎng)絡狀態(tài))。
提供本發(fā)明內(nèi)容從而以簡化的形式介紹下面在具體實現(xiàn)中進一步描述的概念的選擇。本發(fā)明內(nèi)容不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于限制所要求保護的主題的范圍。
附圖說明
參考附圖呈現(xiàn)了具體實現(xiàn)。在附圖中,參考數(shù)字的最左邊的(一個或多個)數(shù)字標識該參考數(shù)字首次出現(xiàn)的附圖。在不同的附圖中對相同的參考數(shù)字的使用指示相似或相同的項。
圖1圖示了根據(jù)各個實施例的網(wǎng)絡管理服務的示例示圖,該網(wǎng)絡管理服務讀取網(wǎng)絡的觀測狀態(tài)、將觀測狀態(tài)提供給各個應用并且基于從各個應用接收到的建議狀態(tài)來確定針對網(wǎng)絡的目標狀態(tài)。
圖2圖示了根據(jù)各個實施例的單個設備內(nèi)的、跨多個設備的并且針對通信路徑的示例狀態(tài)變量依賴關系。
圖3圖示了根據(jù)各個實施例的描述被配置為實現(xiàn)網(wǎng)絡管理設備的一個或多個設備的組件的示例環(huán)境。
圖4圖示了根據(jù)各個實施例的讀取觀測網(wǎng)絡狀態(tài)并且寫入目標網(wǎng)絡狀態(tài)的網(wǎng)絡管理服務的示例示圖。
圖5圖示了根據(jù)各個實施例的生成用于在檢測針對網(wǎng)絡的狀態(tài)沖突中使用的狀態(tài)依賴關系圖并且定義用于操作網(wǎng)絡的策略的示例過程。
圖6圖示了根據(jù)各個實施例的基于建議網(wǎng)絡狀態(tài)到目標網(wǎng)絡狀態(tài)中的合并來更新觀測網(wǎng)絡狀態(tài)或當前網(wǎng)絡狀態(tài)的示例過程。
圖7圖示了根據(jù)各個實施例的繼續(xù)生成并更新目標網(wǎng)絡狀態(tài)的示例過程。
具體實現(xiàn)
在此所描述的技術和/或系統(tǒng)實現(xiàn)了監(jiān)視和管理網(wǎng)絡的網(wǎng)絡管理服務。網(wǎng)絡可以包括被配置為執(zhí)行各種功能的各種類型的設備。網(wǎng)絡還可以包括在各設備之間的各種通信路徑。在此所描述的網(wǎng)絡管理服務使得應用(例如網(wǎng)絡管理應用)能夠獨立地操作。網(wǎng)絡管理服務被配置為讀取觀測網(wǎng)絡狀態(tài)并將觀測網(wǎng)絡狀態(tài)提供到應用。網(wǎng)絡管理服務還被配置為使用狀態(tài)依賴關系圖來確定在從應用接收到的建議網(wǎng)絡狀態(tài)之間是否存在狀態(tài)沖突。此外,網(wǎng)絡管理服務被配置為確定定義策略是否被建議網(wǎng)絡狀態(tài)違反。最后,網(wǎng)絡管理服務被配置為通過將遵守定義策略的非沖突的建議網(wǎng)絡狀態(tài)合并來生成目標網(wǎng)絡狀態(tài),并且基于所生成的目標網(wǎng)絡狀態(tài)來更新(例如寫入)網(wǎng)絡狀態(tài)。因此,在此所描述的網(wǎng)絡管理服務使得網(wǎng)絡能夠安全地且高效地連續(xù)操作,這至少是因為避免了狀態(tài)沖突并且檢查了建議網(wǎng)絡狀態(tài)改變以確保它們遵守所定義的網(wǎng)絡策略。
如本文中所使用的,網(wǎng)絡的“狀態(tài)”依賴于網(wǎng)絡內(nèi)的個體設備和/或個體通信路徑的狀態(tài)。因此,在此所描述的網(wǎng)絡管理服務被配置為觀測(例如讀取)、存儲并聚集網(wǎng)絡內(nèi)的個體設備和/或個體通信路徑的狀態(tài),使得能夠確定更廣泛的網(wǎng)絡的狀態(tài)。在各種實現(xiàn)中,個體設備或個體通信路徑可以具有一個或多個狀態(tài)變量,并且在任何給定時間,狀態(tài)變量可以是各個值中的任何一個值。
狀態(tài)變量被定義為可以具有能夠被讀取和/或?qū)懭氲闹档脑O備或通信路徑的任何組件。例如,狀態(tài)變量可以為針對其能夠讀取觀測值并且能夠?qū)懭肽繕酥档脑O備的可控制組件。狀態(tài)變量可以為針對其能夠讀取觀測值但是不能夠?qū)懭肽繕酥档脑O備的不可控制組件(例如,應用可能想要獲知不可控制的或“只讀”的狀態(tài)變量的值以建議針對另一狀態(tài)變量的期望值)。狀態(tài)變量還可以與網(wǎng)絡的虛擬組件相關聯(lián)。
狀態(tài)變量還可以被稱為鍵值對,其中(i)鍵唯一地標識狀態(tài)變量和/或與狀態(tài)變量相關聯(lián)的特定設備或通信路徑,并且(ii)值標識針對狀態(tài)變量的可能值中的一個值。例如,設備可以包括指示設備是被供電還是被斷電的功率狀態(tài)變量。因此,針對功率狀態(tài)變量的第一值可以指示設備被供電,并且針對功率狀態(tài)變量的第二值可以指示設備被斷電。這些差異值能夠從設備被讀取(例如被觀測到)和/或被寫入到設備(例如,功率是設備的可控制組件使得網(wǎng)絡管理服務能夠?qū)⒃O備在被供電或被斷電之間進行切換)。因此,網(wǎng)絡的狀態(tài)是與網(wǎng)絡內(nèi)的個體設備和/或個體通信路徑相關聯(lián)的狀態(tài)變量的匯集或聚集(例如,鍵值對的表)。
通常,各個應用單獨地訪問設備并且控制設備的狀態(tài)變量。例如,應用通常監(jiān)視設備的狀態(tài)變量,基于監(jiān)視來確定用于更新設備的時間,登錄到設備以控制狀態(tài)變量(例如,將狀態(tài)變量從觀測值或當前值改變?yōu)槠谕?并且然后發(fā)出命令以更新設備。可以由負責管理并控制設備和/或設備為其部分的網(wǎng)絡的不同方面或功能的不同的獨立的開發(fā)者和/或?qū)嶓w創(chuàng)建和/或操作這些各個應用,使得設備和網(wǎng)絡有效地且可靠地操作(例如,網(wǎng)絡如其應當?shù)貓?zhí)行)。實現(xiàn)對網(wǎng)絡中的設備的更新的應用通常沒有意識到更新由其他應用實現(xiàn)或?qū)⒁獙崿F(xiàn)在相同的設備上。因此,多個獨立操作的應用常常試圖同時控制相同設備的相同狀態(tài)變量。在許多實例中,由第一應用實現(xiàn)第一更新所要求的狀態(tài)變量值可能不利地影響由第二應用實現(xiàn)的第二更新。例如,第一更新可能要求狀態(tài)變量為第一值,同時第二更新可能要求狀態(tài)變量為與第一值不同的第二值。因此,出現(xiàn)狀態(tài)沖突并且該狀態(tài)沖突可能減弱網(wǎng)絡的效率和可靠性并且還使控制實現(xiàn)更新的應用的開發(fā)者和/或?qū)嶓w受挫敗。
作為說明性示例,假定業(yè)務工程應用想要創(chuàng)建通過網(wǎng)絡內(nèi)的交換機設備的通信隧道,同時固件升級應用想要使相同的交換機設備升級。在許多實例中并且取決于哪個應用首先發(fā)起對交換機設備的動作,要么(i)業(yè)務工程應用未能創(chuàng)建通信隧道,這是因為交換機設備可能已經(jīng)被關閉(例如,功率狀態(tài)變量指示交換機設備被斷電),使得固件升級應用能夠使交換機設備升級,要么(ii)在由固件升級應用使交換機設備斷電使得固件能夠被升級之后或時,已經(jīng)由業(yè)務工程應用建立的通信隧道可能最終丟掉通信業(yè)務。
用于解決狀態(tài)沖突的傳統(tǒng)方法包括實現(xiàn)一種系統(tǒng),其中應用與彼此進行協(xié)商并且提前關于針對在給定時間的設備的狀態(tài)變量的特定值達成一致使得能夠避免狀態(tài)沖突。然而,該傳統(tǒng)方法需要在每對應用之間的協(xié)調(diào)和通信,并且因此應用變得彼此依賴(例如,必須被編程為以共同的語言進行通信的緊耦合的應用)。此外,該傳統(tǒng)方法至少因為要求大量操作開銷而引起開發(fā)復雜性和可擴展性挑戰(zhàn),使得每個應用能夠與許多其他應用進行協(xié)商,以關于針對狀態(tài)變量的特定值達成一致以避免沖突。例如,想要更新設備的應用可能需要將針對設備的狀態(tài)變量的期望值傳遞到數(shù)十或數(shù)百個其他應用,并且然后在將狀態(tài)變量從觀測值或當前值改變?yōu)槠谕麑崿F(xiàn)更新的值之前從數(shù)十或數(shù)百個其他應用接收批準。
在此所描述的技術和/或系統(tǒng)實現(xiàn)一種共享的網(wǎng)絡管理服務,其實現(xiàn)用于使各個應用獨立地實現(xiàn)對網(wǎng)絡的狀態(tài)的改變的協(xié)同的且有組織的方法。共享的網(wǎng)絡管理服務承擔解決將狀態(tài)沖突遠離應用并確保避免狀態(tài)沖突的職責。這允許應用與彼此獨立地進行操作(例如,應用不必與其他應用進行通信和協(xié)商)并且解決以上提到的復雜性和可擴展性挑戰(zhàn)。此外,在此所描述的技術和/或系統(tǒng)減少了用于狀態(tài)沖突解決和策略檢查的延時。
如在此所討論的,網(wǎng)絡管理服務生成、維護并使用狀態(tài)依賴關系圖來檢測狀態(tài)沖突。狀態(tài)依賴關系圖捕獲和/或表示在各狀態(tài)變量之間的網(wǎng)絡特定(例如域特定)依賴關系??梢远x針對與網(wǎng)絡內(nèi)的相同設備或相同通信路徑相關聯(lián)的兩個或更多個狀態(tài)變量的依賴關系?;蛘?,可以定義在與第一設備或第一通信路徑相關聯(lián)的第一狀態(tài)變量和與第二設備或第二通信路徑相關聯(lián)的第二狀態(tài)變量之間的依賴關系。網(wǎng)絡管理服務訪問狀態(tài)依賴關系圖以確定存在狀態(tài)沖突(例如,檢測狀態(tài)沖突)并解決狀態(tài)沖突。
此外,網(wǎng)絡管理服務可以確保網(wǎng)絡在任何給定時間不違反策略(例如,不變量)。例如,策略可以為服務水平協(xié)議(SLA)或至少與服務水平協(xié)議(SLA)相關聯(lián)。服務水平協(xié)議可以為被建立并被強制執(zhí)行以確保網(wǎng)絡以或高于可靠性和/或性能標準進行操作的網(wǎng)絡范圍服務水平協(xié)議。例如,服務水平協(xié)議可以被定義以確保網(wǎng)絡以或高于最小網(wǎng)絡連接性水平進行操作(例如,網(wǎng)絡中至少百分之九十的交換機設備需要在任何給定時間被供電)。因此,網(wǎng)絡管理服務審查定義策略并確保對網(wǎng)絡的狀態(tài)的任何改變(例如,對狀態(tài)變量的改變)不引起對定義策略的違反。
圖1圖示了包括管理網(wǎng)絡104的網(wǎng)絡管理服務102的示例示意圖100。網(wǎng)絡104可以包括各種設備106和通信路徑108。通信路徑108可以與將兩個設備進行連接的直接鏈路相關聯(lián),或者可以包括將兩個設備進行連接的間接鏈路,其中業(yè)務經(jīng)由被定位在兩個設備(例如,端點設備)之間的至少一個中間設備被傳遞。在一個實現(xiàn)中,通信路徑108可以包括通過兩個或更多個設備的通信隧道。
在各個實施例中,被管理的網(wǎng)絡104可以為大型生產(chǎn)網(wǎng)絡,例如數(shù)據(jù)中心網(wǎng)絡(DCN)、因特網(wǎng)服務提供商(ISP)網(wǎng)絡、企業(yè)網(wǎng)絡(例如,云服務)或可以在實體(例如,操作并維護執(zhí)行網(wǎng)絡管理服務102的設備的實體)的控制下的任何其他管理域。設備106可以為物理網(wǎng)絡設備,例如交換設備(交換機)、路由設備(路由器)、網(wǎng)關設備(網(wǎng)關)、橋接設備(網(wǎng)絡橋接器)、集線器設備(網(wǎng)絡集線器)、防火墻設備、網(wǎng)絡地址轉(zhuǎn)換器設備(NAT)、多路復用設備(多路復用器)、無線接入點設備(WAP)、代理服務器設備、文件服務器設備、數(shù)據(jù)庫服務器設備、存儲設備,等等。設備106還可以為能夠連接到網(wǎng)絡104的終端用戶設備。例如,終端用戶設備可以包括移動設備或便攜式設備,例如智能電話、蜂窩電話、個人數(shù)字助理(PDA)、電子書設備、膝上型計算設備、平板計算設備、個人媒體播放器設備,等等?;蛘?,終端用戶設備可以包括固定設備,例如臺式計算設備、游戲控制臺設備、數(shù)字視頻記錄設備(DVR)、機頂盒設備,等等。因此,網(wǎng)絡104可以包括被連接到彼此以包括域或管理網(wǎng)絡的數(shù)百或數(shù)千設備。
作為網(wǎng)絡104的管理和管束的一部分,網(wǎng)絡管理服務102被配置為監(jiān)視并存儲觀測網(wǎng)絡狀態(tài)110(例如,讀取觀測網(wǎng)絡狀態(tài)110)。觀測網(wǎng)絡狀態(tài)110包括在給定時間構成網(wǎng)絡104的設備106和/或通信路徑108的狀態(tài)變量的值的匯集或聚集(例如,實時值、最近觀測值等)。例如,在給定時間的個體設備106可以被觀測以具有功率狀態(tài)變量,其中的第一值指示功率被打開或者第二值指示功率被關閉。
在讀取觀測網(wǎng)絡狀態(tài)110(例如,針對狀態(tài)變量的觀測值)之后,網(wǎng)絡管理服務102被配置為存儲觀測網(wǎng)絡狀態(tài)110和/或?qū)⒂^測網(wǎng)絡狀態(tài)110或觀測網(wǎng)絡狀態(tài)110的至少部分(例如,針對指定狀態(tài)變量的值)提供(例如傳遞)到各個應用112(1)…112(N)。在一個實現(xiàn)中,應用112(1)…112(N)可以請求和/或訪問觀測網(wǎng)絡狀態(tài)110(例如,將觀測網(wǎng)絡狀態(tài)110從網(wǎng)絡管理服務102中“拉取”)。在另一實現(xiàn)中,網(wǎng)絡管理服務102可以將觀測網(wǎng)絡狀態(tài)110自動提供到應用112(1)…112(N)(例如,將觀測網(wǎng)絡狀態(tài)110“推送”到應用112(1)…112(N))。在其中網(wǎng)絡為大型生產(chǎn)網(wǎng)絡的實例中,應用的數(shù)量N可以是大的(例如,十個、五十個、一百個、一千個,等等)。
應用(例如,112(1)…112(N)之一)可以負責管理并控制網(wǎng)絡104的特定方面或功能,使得網(wǎng)絡104有效地且可靠地進行操作。因此,應用112(1)…112(N)可以是花費數(shù)年來設計、開發(fā)和部署在大型生產(chǎn)網(wǎng)絡中的高度復雜的應用。在各個實施例中,由個體應用(例如,112(1)…112(N)之一)管理和控制的網(wǎng)絡104的特定方面或功能可以與單個設備106和/或網(wǎng)絡的單個通信路徑108或者設備106的子集和/或網(wǎng)絡的通信路徑108的子集(例如,特定類型的設備,諸如網(wǎng)絡交換機設備)相關聯(lián)。因此,個體應用可以請求或者被提供有針對特定狀態(tài)變量的觀測狀態(tài)值,其與個體應用被配置為管理并控制的設備106和/或通信路徑108相關聯(lián)(例如,個體應用可能不需要理解針對網(wǎng)絡104的所有狀態(tài)變量的觀測狀態(tài)值)。
應用(例如,112(1)…112(N)之一)可以被分類為管理針對網(wǎng)絡104的設備106和/或通信路徑108的交換轉(zhuǎn)發(fā)規(guī)則的路由管理應用。例如,業(yè)務工程應用可以是路由管理應用,其被配置為操操縱不同的通信路徑108(例如通過/針對兩個或更多個設備106建立的通信隧道)的業(yè)務以改進網(wǎng)絡利用和/或確保滿足性能要求。在另一示例中,服務器負載平衡應用可以是路由管理應用,其等同地將通信負載(例如業(yè)務)跨設備(例如,處理針對數(shù)據(jù)的請求的服務器的組)進行劃分。
應用(例如,112(1)…112(N)之一)可以被分類為基礎設施管理應用,其管理網(wǎng)絡104的設備106和/或通信路徑108的網(wǎng)絡基礎設施。例如,功率管理應用可以是被配置為在任何給定時間打開或關閉交換設備以便緩和故障或節(jié)省能量的基礎設施管理應用。在另一示例中,交換機升級應用可以是負責將新的操作系統(tǒng)(即固件)安裝在交換機設備上的基礎設施管理應用。在又一示例中,配置管理應用可以為被配置為管理交換設備配置和通信路徑配置(例如,指定管理層,實現(xiàn)鏈路層發(fā)現(xiàn)協(xié)議(LLDP)、因特網(wǎng)協(xié)議(IP)分配,等等)的基礎設施管理應用。
以上描述的應用在本文中被提供為示例應用,并且可以預見到,被開發(fā)為控制網(wǎng)絡的方面或功能的其他應用還可以從本文檔中描述的技術和/或系統(tǒng)獲益。
在將觀測網(wǎng)絡狀態(tài)110或針對特定狀態(tài)變量的值提供到應用112(1)…112(N)然后,網(wǎng)絡管理服務102從應用112(1)…112(N)接收(一個或多個)建議網(wǎng)絡狀態(tài)114。應用(例如,112(1)…112(N)之一)可以期望對觀測網(wǎng)絡狀態(tài)110中的一個或多個狀態(tài)變量的值的特定改變(例如,以更新設備),并且因此,應用可以生成并傳遞提議特定改變(例如,將狀態(tài)變量的觀測值或當前值改變?yōu)闋顟B(tài)變量的期望值)的建議網(wǎng)絡狀態(tài)114。
網(wǎng)絡管理服務102然后被配置為將(一個或多個)建議網(wǎng)絡狀態(tài)114合并并且生成目標網(wǎng)絡狀態(tài)116。針對管理的網(wǎng)絡104的目標網(wǎng)絡狀態(tài)116基于從各個應用112(1)…112(N)統(tǒng)一接收到的(一個或多個)建議網(wǎng)絡狀態(tài)。目標網(wǎng)絡狀態(tài)116包括能夠被同時實現(xiàn)的并且不會導致狀態(tài)沖突或?qū)Χx網(wǎng)絡策略(例如服務水平協(xié)議)的違反的、對狀態(tài)變量的值的接受改變的組。網(wǎng)絡管理服務102可以訪問并使用以上討論的狀態(tài)依賴關系圖以確定在經(jīng)由建議網(wǎng)絡狀態(tài)114提議的兩個或更多個改變之間是否存在沖突。網(wǎng)絡管理服務102還可以訪問定義策略并且確定經(jīng)由建議網(wǎng)絡狀態(tài)114提議的改變是否導致策略違反。因此,網(wǎng)絡管理服務102可能必須在確定存在沖突或違反定義策略時拒絕經(jīng)由建議網(wǎng)絡狀態(tài)114提議的一些改變。換言之,目標網(wǎng)絡狀態(tài)116可以不實現(xiàn)經(jīng)由建議網(wǎng)絡狀態(tài)114接收的所有所提議的狀態(tài)變量改變。一旦目標網(wǎng)絡狀態(tài)116被生成,網(wǎng)絡管理服務102就啟動狀態(tài)變量的改變(例如,從先前觀測狀態(tài)值或當前值到期望值)。
因此,以上描述的并且在本文中進一步討論的網(wǎng)絡管理服務102被配置為使應用112(1)…112(N)免遭與控制和管理網(wǎng)絡104(例如,一個或多個設備106)相關聯(lián)的交互和/或必須理解在狀態(tài)變量之間的依賴關系。相反,網(wǎng)絡管理服務102處理交互并理解在狀態(tài)變量之間的依賴關系。因此,不要求應用112(1)…112(N)本身來實現(xiàn)讀取和/或?qū)懭霠顟B(tài)變量的設備特定方法和/或協(xié)議特定方法。此外,由于網(wǎng)絡管理服務102不會使得應用112(1)…112(N)能夠直接地且單方面地控制被管理的網(wǎng)絡104中的設備106和/或通信路徑108,因此能夠檢測到狀態(tài)沖突,由此緩和網(wǎng)絡故障或減弱的網(wǎng)絡性能。
在各個實施例中,網(wǎng)絡管理服務102可以使用應用編程接口(API)與應用112(1)…112(N)對接。
圖2是圖示了針對單個設備的、跨多個設備的并且針對通信路徑的狀態(tài)變量依賴關系的示圖200。示圖200圖示了第一設備106(1)和第二設備106(2)以及將網(wǎng)絡104中的第一設備106(1)連接到第二設備106(2)的通信路徑108。如以上所討論的,通信路徑108可以是直接鏈路或間接鏈路。
網(wǎng)絡管理服務102被配置為觀測并存儲針對網(wǎng)絡中的設備106和通信路徑108定義的狀態(tài)變量的值(例如,鍵值對的表)。此外,網(wǎng)絡管理服務102當存儲值時可以將觀測值(例如,鍵值對)與指示何時觀測到針對狀態(tài)變量的值的時間戳相關聯(lián)。
第一設備106(1)可以與狀態(tài)變量202(1)…202(M)相關聯(lián)。第二設備106(2)可以與狀態(tài)變量204(1)…204(L)相關聯(lián)。通信路徑108可以與狀態(tài)變量206(1)…206(K)相關聯(lián)。在各個實施例中,與設備106(1)和106(2)相關聯(lián)的狀態(tài)變量可以被稱為物理狀態(tài)變量,并且與通信路徑108相關聯(lián)的狀態(tài)變量可以被稱為虛擬狀態(tài)變量,這是因為它們可以不是設備106的物理組件。相反,虛擬狀態(tài)變量可以為與關聯(lián)于設備的物理狀態(tài)變量有關的組件。網(wǎng)絡管理服務102可以被配置為基于關系來將虛擬狀態(tài)變量轉(zhuǎn)換為一個或多個物理狀態(tài)變量。
針對個體設備106(1)和106(2)的示例狀態(tài)變量包括但不限于以下中的一個或多個:設備功率狀態(tài)變量(例如,功率單元可達性狀態(tài)變量、管理功率狀況狀態(tài)變量,等等)、固件設置狀態(tài)變量(例如,固件版本狀態(tài)變量、啟動鏡像狀態(tài)變量,等等)、設備配置狀態(tài)變量(例如,管理接口設置狀態(tài)變量、布線狀況狀態(tài)變量,等等)、路由控制狀態(tài)變量(例如,流路由規(guī)則狀態(tài)變量、鏈路權重分配狀態(tài)變量,等等)以及設備計數(shù)器狀態(tài)變量(例如,CPU利用狀態(tài)變量、存儲器利用狀態(tài)變量,等等)。針對個體設備106(1)和106(2)的另一示例狀態(tài)變量可以與通信接口相關聯(lián),并且可以包括但不限于以下中的一個或多個:接口功率狀態(tài)變量(例如,接口管理狀況狀態(tài)變量、接口操作狀況狀態(tài)變量,等等)、接口配置狀態(tài)變量(例如,IP分配狀態(tài)變量、啟動狀況狀態(tài)變量,等等)以及接口計數(shù)器狀態(tài)變量(例如,業(yè)務負載狀態(tài)變量、丟包率狀態(tài)變量,等等)。
針對個體通信路徑108的示例狀態(tài)變量可以包括但不限于設置和業(yè)務狀態(tài)變量(例如,標識通信路徑上的交換設備的狀態(tài)變量、多協(xié)議標簽交換(MPLS)隧道狀態(tài)變量,等等)。
由網(wǎng)絡管理服務102生成的狀態(tài)依賴關系圖基于在網(wǎng)絡104的狀態(tài)變量之間的所定義的依賴關系。因此,由網(wǎng)絡管理服務102用于檢測狀態(tài)沖突的狀態(tài)依賴關系圖可以定義依賴關系,使得個體狀態(tài)變量不能夠同時具有多個值(例如,交換設備不能夠同時被供電和斷電)。例如,當從第一應用接收到的建議網(wǎng)絡狀態(tài)請求或提議針對狀態(tài)變量的第一值同時從第二應用接收到的建議網(wǎng)絡狀態(tài)請求或提議針對相同狀態(tài)變量的與第一值不同的第二值時,狀態(tài)依賴關系圖可以用于檢測到出現(xiàn)狀態(tài)沖突。因此,依賴關系能夠相對于個體狀態(tài)變量被定義。
由網(wǎng)絡管理服務102用于檢測狀態(tài)沖突的狀態(tài)依賴關系圖還可以定義在多個狀態(tài)變量(例如,至少兩個狀態(tài)變量)之間的關系依賴關系。換言之,狀態(tài)變量的值是否是可改變的可以取決于一個或多個其他狀態(tài)變量的值。多個狀態(tài)變量可以與相同設備或相同通信路徑相關聯(lián)。例如,狀態(tài)變量202(1)的特定值可能與狀態(tài)變量202(2)的特定值沖突,或者狀態(tài)變量206(1)的特定值可能與狀態(tài)變量206(2)的特定值沖突。在一個示例中,針對設備配置狀態(tài)變量的特定值可以取決于固件版本狀態(tài)變量的特定值(例如,固件版本可能必須為針對設備配置狀態(tài)的特定值的最近升級的操作系統(tǒng))。
多個狀態(tài)變量可以備選地與不同的設備或通信路徑相關聯(lián)。例如,圖2圖示了在與設備106(1)相關聯(lián)的狀態(tài)變量202(2)和與設備106(2)相關聯(lián)的狀態(tài)變量204(1)之間的所定義的依賴關系208。作為示例,針對設備106(1)的設備配置狀態(tài)變量(例如,狀態(tài)變量202(2))的特定值可以依賴于設備106(2)的功率狀態(tài)變量(例如,狀態(tài)變量204(1))值是否指示設備106(2)被供電。
在各個實施例中,網(wǎng)絡管理服務102基于層來構造狀態(tài)變量。例如,狀態(tài)變量202(1)可以為第一層210的一部分。狀態(tài)變量202(2)可以為第二層212的一部分。并且,狀態(tài)變量202(M)可以為第M層214的一部分(例如,其中M是整數(shù)值)。結構內(nèi)定義的層可以基于狀態(tài)變量的類型或種類。在一個實現(xiàn)中,層210可以包括功率類型或功率種類的狀態(tài)變量,層212可以包括設備配置類型或設備配置種類的狀態(tài)變量,并且層214可以包括路由控制類型或路由控制種類的狀態(tài)變量。
由于應用(例如,應用112(1)…112(N)之一)可以負責控制并管理網(wǎng)絡的特定方面或功能,所以應用可以僅僅對理解并控制與網(wǎng)絡的特定方面或功能相關聯(lián)的少量狀態(tài)變量感興趣。因此,網(wǎng)絡管理服務102可以根據(jù)層來構造或組織狀態(tài)變量,使得應用能夠有效地獲得針對特定層內(nèi)的狀態(tài)變量的觀測值。該特定層與應用正在管理和控制的網(wǎng)絡的特定方面或功能相關。繼續(xù)在前一段中的示例,功率管理應用可能僅僅想要接收并理解層210中的狀態(tài)變量的觀測值(例如,功率類型或功率種類的那些)。或者,業(yè)務工程應用可能僅僅想要接收并理解層214中的狀態(tài)變量的觀測值(例如,路由控制類型或路由控制種類的那些)。
圖3是示出了實現(xiàn)以上描述的網(wǎng)絡管理服務102的示例環(huán)境300的示圖。在各個實施例中,可以經(jīng)由一個或多個設備302來實現(xiàn)網(wǎng)絡管理服務102。設備302可以包括固定設備,例如臺式計算設備、服務器計算設備,等等。設備302可以備選地包括移動設備或便攜式設備,例如膝上型計算設備、平板計算設備、智能電話設備、蜂窩電話設備、個人數(shù)字助理(PDA)設備、電子書設備,等等。
(一個或多個)設備302包括被配置為實現(xiàn)在此所描述的技術的網(wǎng)絡管理服務102。設備302可以個體地且單獨地包括一個或多個處理器304和存儲器306。(一個或多個)處理器304可以是單個處理器單元或多個單元,其中每個單元能夠包括多個不同的處理單元。(一個或多個)處理器304可以包括微處理器、微型計算機、微控制器、數(shù)字信號處理器、中央處理單元(CPU)、圖形處理單元(GPU)、安全性處理器,等等。備選地或附加地,能夠至少部分地由一個或多個硬件邏輯組件執(zhí)行在此所描述的技術中的一些或全部。例如但非限制性的,能夠被使用的說明性類型的硬件邏輯組件包括現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標準產(chǎn)品(ASSP)、狀態(tài)機、復雜可編程邏輯器件(CPLD)、其他邏輯電路、片上系統(tǒng)(SoC)和/或基于指令來執(zhí)行操作的任何其他設備。在其他功能之中,(一個或多個)處理器304可以被配置為獲取并執(zhí)行存儲在存儲器306中的計算機可讀指令。
存儲器306可以包括計算機可讀介質(zhì)中的一個或組合。如本文中所使用的,“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)和通信介質(zhì)。
計算機存儲介質(zhì)包括通過用于存儲信息(諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù))的任何方法或技術實現(xiàn)的易失性介質(zhì)和非易失性介質(zhì)、可移除介質(zhì)和不可移除介質(zhì)。計算機存儲介質(zhì)包括但不限于相位變化存儲器(PRAM)、靜態(tài)隨機訪問存儲器(SRAM)、動態(tài)隨機訪問存儲器(DRAM)、其他類型的隨機訪問存儲器(RAM)、只讀存儲器(ROM)、電可擦可編程ROM(EEPROM)、閃存或其他存儲器技術、緊湊盤ROM(CD-ROM)、數(shù)字多用盤(DVD)或其他光學存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設備或能夠被用于存儲用于由設備訪問的信息的任何其他介質(zhì)。
相反,通信介質(zhì)包括計算機可讀指令、數(shù)據(jù)結構、程序模塊或諸如載波的經(jīng)調(diào)制的數(shù)據(jù)信號中的其他數(shù)據(jù)。如本文中所限定的,計算機存儲介質(zhì)不包括通信介質(zhì)。
存儲器306可以包括被配置為管理設備內(nèi)的并且耦合到設備的硬件和服務以有益于其他模塊、組件和設備的操作系統(tǒng)。在一些實例中,網(wǎng)絡管理服務102的至少一部分可以被實現(xiàn)在操作系統(tǒng)內(nèi),或者由操作系統(tǒng)實現(xiàn)。
網(wǎng)絡管理服務102包括監(jiān)視模塊308、檢查模塊310和更新模塊312中的一個或多個。如本文中所使用的,術語“模塊”旨在表示為了討論的目的的軟件的示例劃分,并且不旨在表示任何類型的要求或所需要的方法、方式或組織。因此,盡管討論各種“模塊”,但是它們的功能和/或類似的功能能夠以不同方式來布置(例如,被組合成更少數(shù)量的模塊、被分解成更大數(shù)量的模塊,等等)。另外,盡管某些功能和模塊在本文中被描述為由可執(zhí)行在跨一個或多個設備的一個或多個處理器的軟件和/或固件實現(xiàn),但是在其他實施例中,模塊中的任何或全部可以整體地或部分地由硬件(例如,ASIC、專門的處理單元,等等)實現(xiàn)以執(zhí)行所描述的功能。在其他實例中,功能和/或模塊被實現(xiàn)為設備驅(qū)動器、固件等的一部分。
監(jiān)視模塊308被配置為讀取或觀測被管理的網(wǎng)絡104的當前網(wǎng)絡狀態(tài)或?qū)嶋H網(wǎng)絡狀態(tài)(即,觀測網(wǎng)絡狀態(tài)110)。如以上所討論的,觀測網(wǎng)絡狀態(tài)110包括在給定時間的針對被管理的網(wǎng)絡104的設備106和通信路徑108的各種狀態(tài)變量的值。在讀取狀態(tài)變量的值之后,監(jiān)視模塊308被配置為將觀測值存儲在狀態(tài)變量存儲314中。例如,監(jiān)視模塊308可以根據(jù)鍵值對(例如,鍵值對的表)來組織或構造狀態(tài)變量存儲314中的觀測值。通過存儲觀測網(wǎng)絡狀態(tài)110,針對狀態(tài)變量的最近觀測值能夠在觀測值由監(jiān)視模塊308讀取之后的稍后時間被訪問。在一些實現(xiàn)中,可以根據(jù)設備106和/或通信路徑108以及狀態(tài)變量的類型或種類(例如,以上所討論的層)來分類鍵值對。
在各種實現(xiàn)中,監(jiān)視模塊308可以被配置為根據(jù)定期排程(例如,每三十秒、每分鐘、每三分鐘、每十分鐘、每三十分鐘、每小時、每天的特定時間,等等)讀取設備106和通信路徑108的最新狀態(tài)變量值。在其他實現(xiàn)中,監(jiān)視模塊308可以被配置為響應于特定事件而讀取設備106和通信路徑108的最新狀態(tài)變量值。例如,特定事件可以包括由來自操作網(wǎng)絡管理服務102的實體或由被管理的網(wǎng)絡104服務的實體(例如,企業(yè)實體)的代表(例如網(wǎng)絡管理員)發(fā)起的特定指令。在另一示例中,特定事件可以是網(wǎng)絡故障或網(wǎng)絡中斷。
在各個實施例中,監(jiān)視模塊308使用各種協(xié)議讀取并收集針對狀態(tài)變量的值。例如,由監(jiān)視模塊308用于讀取值的協(xié)議可以取決于設備106(例如,交換設備)的供應商或制造商和/或由設備106支持的物理技術(例如,簡單網(wǎng)絡管理協(xié)議(SNMP)、開放流通信協(xié)議等)。監(jiān)視模塊308然后將協(xié)議特定數(shù)據(jù)轉(zhuǎn)換成要被存儲在狀態(tài)變量存儲314中和/或要被提供到應用112(1)…112(N)的狀態(tài)變量值。由于監(jiān)視模塊308可以被配置為實現(xiàn)用于從不同設備(例如,由不同實體制造的設備)讀取狀態(tài)變量的值的不同協(xié)議,因此監(jiān)視模塊308能夠使應用112(1)…112(N)免遭不同設備106的異構性質(zhì)。換言之,監(jiān)視模塊308可以通過統(tǒng)一格式對狀態(tài)變量值進行轉(zhuǎn)換并且將其永久地存儲,使得應用112(1)…112(N)不必知道或理解用于讀取和寫入狀態(tài)變量值的特定基礎設施技術和/或協(xié)議。
監(jiān)視模塊308被進一步配置為將觀測狀態(tài)變量值提供到應用112(1)…112(N)。如以上所討論的,觀測狀態(tài)變量值的提供可以經(jīng)由推送技術或拉取技術來實現(xiàn)。此外,應用可能僅僅想要理解,并且因此被提供有與其負責控制和管理的網(wǎng)絡功能或網(wǎng)絡方面有關的特定狀態(tài)變量值。因此,監(jiān)視模塊308可以被配置為將特定狀態(tài)變量值提供到特定應用。例如,來自特定應用的拉取請求可以指示一個或多個鍵,該一個或多個鍵單獨地標識設備106的狀態(tài)變量或通信路徑108的狀態(tài)變量,并且監(jiān)視模塊308提供針對響應于拉取請求而指示的一個或多個鍵的觀測值。在另一示例中,監(jiān)視模塊308可以被配置有意識到哪個狀態(tài)變量值與特定應用有關的邏輯,并且因此,監(jiān)視模塊308可以根據(jù)排程(例如,定期排程)或響應于特定時間自動將特定狀態(tài)變量值推送到特定應用。因此,監(jiān)視模塊308可以被配置為對應用112(1)…112(N)可用的中間接口,使得應用能夠讀取狀態(tài)變量的觀測值。
在接收到觀測網(wǎng)絡狀態(tài)110(例如,一個或多個觀測值)之后,應用112(1)…112(N)確定是否提議對觀測值的改變。例如,應用可以確定觀測值需要被改變使得應用能夠更新設備106上的固件。因此,應用112(1)…112(N)被單獨地配置為生成一個或多個建議網(wǎng)絡狀態(tài)114并將其返回到網(wǎng)絡管理服務102。在各個實施例中,由應用(例如,應用112(1)…112(N)之一)生成和提供的每個建議網(wǎng)絡狀態(tài)114可以提議狀態(tài)變量從觀測值到期望值的單個改變。因此,單個應用可以確定需要多個值改變,并且因此,單個應用可以提供多個建議網(wǎng)絡狀態(tài)114。在其他實施例中,由應用(例如,應用112(1)…112(N)之一)生成和提供的個體建議網(wǎng)絡狀態(tài)114可以提議對多個相應的觀測值的多個改變。
在各個實施例中,檢查模塊310被配置為從應用112(1)…112(N)接收建議網(wǎng)絡狀態(tài)114和/或?qū)⑺嶙h的改變(例如,狀態(tài)變量的期望值)存儲在狀態(tài)變量存儲314中,使得檢查模塊310能夠開始確定是否存在狀態(tài)沖突或者是否違反定義策略。
在接收到建議網(wǎng)絡狀態(tài)114之后,檢查模塊310被配置為生成目標網(wǎng)絡狀態(tài)116。檢查模塊310通過檢測并移除建議網(wǎng)絡狀態(tài)114之間的沖突來生成目標網(wǎng)絡狀態(tài)116。例如,如果在兩個或更多個建議網(wǎng)絡狀態(tài)之間檢測到?jīng)_突,則檢查模塊310被配置為接受一個建議網(wǎng)絡狀態(tài)并拒絕與所接受的建議網(wǎng)絡狀態(tài)沖突的至少一個其他建議網(wǎng)絡狀態(tài)。作為示例,檢查模塊310可以在第一建議網(wǎng)絡狀態(tài)和第二建議網(wǎng)絡狀態(tài)(例如,至少兩個建議網(wǎng)絡狀態(tài))提議同時(例如,同時地)將狀態(tài)變量改變?yōu)椴煌禃r檢測到存在沖突。在另一示例中,檢查模塊310可以在第一建議網(wǎng)絡狀態(tài)提議對第一狀態(tài)變量的第一期望值并且第二建議網(wǎng)絡狀態(tài)表提議對與第一狀態(tài)變量不同的第二狀態(tài)變量的第二期望值時檢測到存在沖突,其中第一期望值和第二期望值是不兼容的(例如,基于所定義的依賴關系)。
檢查模塊310通過使用例如被存儲在狀態(tài)依賴關系圖存儲庫316中的狀態(tài)依賴關系圖來確定是否存在沖突。如以上所討論的,狀態(tài)依賴關系圖定義狀態(tài)變量之間的依賴關系(例如,第一狀態(tài)變量的特定值可以取決于第二狀態(tài)變量的特定值)。因此,檢查模塊310訪問狀態(tài)依賴關系圖以確定是否存在沖突。
在各個實施例中,網(wǎng)絡管理服務102可以基于層(例如,在各層之間)來定義例如狀態(tài)依賴關系圖內(nèi)的依賴關系。例如,參考回到圖2,狀態(tài)變量202(1)可以為多層依賴關系層次結構中的頂層210的部分。狀態(tài)變量202(2)可以為多層依賴關系層次結構中的中間層212的部分,其中中間層212中的狀態(tài)變量取決于頂層210中的一個或多個狀態(tài)變量的至少一個值。并且,狀態(tài)變量202(M)可以為多層依賴關系層次結構中的底層214的部分,其中底層214中的狀態(tài)變量取決于中間層212中的一個或多個狀態(tài)變量的至少一個值。在上下文中,應當理解,網(wǎng)絡管理服務102能夠生成狀態(tài)依賴關系圖,使得其包括任何數(shù)量(例如,兩個、四個、六個、八個,等等)的層。
網(wǎng)絡管理服務102可以使用多層依賴關系層次結構來有效地確定是否存在狀態(tài)沖突。例如,如果頂層210中的功率狀態(tài)變量指示設備被斷電,則較低層的狀態(tài)變量(諸如中間層212(例如,設備配置類型狀態(tài)變量)和底層214(例如,路由控制類型狀態(tài)變量))中的大多數(shù)(即便不是全部)可能是無效的或空的,這至少是因為設備被關閉并且不進行操作,由此消除應用控制和/或管理可能需要功率的較低層狀態(tài)變量的可能性。換言之,如果功率狀態(tài)變量指示設備的功率被關閉,則檢查模塊可以有效地拒絕與設備的較低層狀態(tài)變量相關聯(lián)的建議網(wǎng)絡狀態(tài)?;蛘?,在一些實例中,可以通知應用功率狀態(tài)變量指示設備的功率被關閉,并且因此,應用可以甚至不建議和/或提議對較低層狀態(tài)變量的改變,這是因為設備被關閉。
在各個實施例中,檢查模塊310使用示例上次寫入成功機制(還被稱為上次提交)或示例鎖定機制來解決檢測到的沖突(例如,選擇建議網(wǎng)絡狀態(tài)以接受)。使用上次寫入成功機制,檢查模塊310被配置為基于例如何時接收到建議網(wǎng)絡狀態(tài)的時間來接受對狀態(tài)變量的所提議的改變。例如,如果檢查模塊310檢查到在兩個建議網(wǎng)絡狀態(tài)之間存在沖突,則檢查模塊310接受或選擇更近(即,較新)接收到的建議網(wǎng)絡狀態(tài),而不是在較新的建議網(wǎng)絡狀態(tài)之前被接收到的較老的建議網(wǎng)絡狀態(tài)。
使用鎖定機制,檢查模塊310使得應用能夠在提供建議網(wǎng)絡狀態(tài)之前排他性地鎖定狀態(tài)變量。檢查模塊310還可以使得應用能夠在提供建議網(wǎng)絡狀態(tài)之前排他性地鎖定設備106或通信路徑108,該建議網(wǎng)絡狀態(tài)可能影響與被鎖定的設備106或被鎖定的通信路徑108相關聯(lián)的多個狀態(tài)變量。一旦設備、通信路徑和/或狀態(tài)變量(例如,經(jīng)由鎖定特定狀態(tài)變量、設備106或通信路徑108的指令)被鎖定,檢查模塊310將不接受來自除了發(fā)起鎖定的一個或多個應用(例如,鎖定保持應用)之外的應用的狀態(tài)變量改變。換言之,檢查模塊310在建議的應用不是鎖定保持應用的情況下拒絕與鎖相關聯(lián)的建議網(wǎng)絡狀態(tài)。
在附加的實施例中,檢查模塊310使用基于優(yōu)先級的機制來解決檢測到的沖突(例如,選擇建議網(wǎng)絡狀態(tài)以接受)。例如,檢查模塊310可以確定第一應用負責控制和管理可能比由另一應用控制和管理的不同網(wǎng)絡功能更重要和/或更有價值的網(wǎng)絡功能(例如,網(wǎng)絡的操作在很大程度上取決于網(wǎng)絡功能)。因此,檢查模塊310可以訪問指示一個應用具有超過另一應用的優(yōu)先級的排序的或加權的應用列表。在一些實現(xiàn)中,優(yōu)先級可以指示被控制或管理的特定網(wǎng)絡功能具有超過另一網(wǎng)絡功能的優(yōu)先級。
可以由操作網(wǎng)絡管理服務102的實體、網(wǎng)絡裝備(例如,設備)的制造商或生產(chǎn)商、管理和控制網(wǎng)絡功能或網(wǎng)絡方面的應用(例如,應用112(1)…112(N)之一)的開發(fā)者、或由網(wǎng)絡服務的實體中的一個或多個來定義狀態(tài)變量和/或在狀態(tài)變量之間的依賴關系。因此,被存儲在狀態(tài)依賴關系圖存儲庫316中并且可由檢查模塊310訪問的以確定在兩個建議網(wǎng)絡狀態(tài)之間是否存在沖突的狀態(tài)依賴關系圖可以不斷演變和/或被更新。例如,特定狀態(tài)變量可以被新引入到狀態(tài)依賴關系圖或從狀態(tài)依賴關系圖被移除。或者,在兩個狀態(tài)變量之間的依賴關系可以被新引入到狀態(tài)依賴關系圖或從狀態(tài)依賴關系圖被移除。
檢查模塊310還通過確定定義策略是否被目標網(wǎng)絡狀態(tài)116違反或通過將兩個或更多個建議網(wǎng)絡狀態(tài)114合并來生成目標網(wǎng)絡狀態(tài)116。因此,檢查模塊310被配置為訪問并評價策略存儲庫318以確保目標網(wǎng)絡狀態(tài)116不違反任何所定義的策略(例如,免于策略違反)。通過強制執(zhí)行策略,網(wǎng)絡管理服務102能夠確保緩和或限制由應用(例如,行為不當?shù)膽?造成的網(wǎng)絡故障。例如,在將非沖突的建議網(wǎng)絡狀態(tài)合并以生成目標網(wǎng)絡狀態(tài)116之后,檢查模塊310可以確定目標網(wǎng)絡狀態(tài)116是否違反一個或多個服務水平協(xié)議(SLA)。在一個實現(xiàn)中,SLA可以定義確保網(wǎng)絡以以下或高于以下進行操作的策略:(i)最小網(wǎng)絡容量水平和/或(ii)用于確保網(wǎng)絡拓撲結構保持被連接的最小可達性水平,使得托管由網(wǎng)絡提供的服務的設備能夠繼續(xù)有效地進行操作(例如,幸免于交換設備的任何單個故障)。
第一示例SLA可以被定義以確保網(wǎng)絡104不被劃分。該示例SLA涉及網(wǎng)絡(例如,DCN)的拓撲結構特性并且可以與架頂(ToR)交換機的連接相關聯(lián)。具體地,該示例SLA可能要求任何ToR交換機能夠基于物理網(wǎng)絡拓撲結構到達相同網(wǎng)絡中的任何其他ToR。該示例SLA還可能要求任何ToR交換機能夠連接到其網(wǎng)絡內(nèi)的邊界路由器,由此指示ToR交換機具有廣域網(wǎng)(WAN)可達性。
第二示例SLA可以被定義以確保兩個設備(例如,ToR交換機)之間的容量。因此,該示例SLA可以確保從網(wǎng)絡內(nèi)的第一ToR交換機到第二ToR交換機的容量滿足最大業(yè)務體積。檢查模塊310可以計算ToR交換機對的當前容量,并且將所計算的當前容量與針對所設計的網(wǎng)絡拓撲結構計算的原始容量進行比較。該示例SLA可以被定義以確保網(wǎng)絡內(nèi)的ToR交換機對的最小百分比p(例如,百分之九十、百分之九十五,等等)具有至少原始容量的預定閾值t(例如,百分之五十、百分之六十,等等)。參數(shù)p和t是可配置的,并且可以由網(wǎng)絡管理服務102、應用(例如,112(1)…112(N)之一)或另一實體設定。例如,參數(shù)可以根據(jù)平衡因子來設定,平衡因子包括冗余量,網(wǎng)絡可能具有用于容忍容量丟失和/或由網(wǎng)絡托管的服務的業(yè)務行為的冗余量。
在各個實施例中,策略可以被實現(xiàn)為在網(wǎng)絡的網(wǎng)絡圖數(shù)據(jù)結構上的函數(shù)。網(wǎng)絡圖數(shù)據(jù)結構可以包含網(wǎng)絡拓撲結構,并且函數(shù)可以返回指示目標網(wǎng)絡狀態(tài)116和/或非沖突的合并的建議網(wǎng)絡狀態(tài)是否違反定義策略的布爾結果。
與狀態(tài)變量和/或依賴關系相似,還可以由操作網(wǎng)絡管理服務102的實體、網(wǎng)絡裝備(例如,設備106)的制造商或生產(chǎn)商、管理和控制網(wǎng)絡功能或網(wǎng)絡方面的應用(例如,應用112(1)…112(N)之一)的開發(fā)者、或由網(wǎng)絡服務的實體中的一個或多個來定義策略。因此,被存儲在策略存儲318中并且可由檢查模塊310訪問的、用于確定是否違反策略的策略可以不斷演變和/或被更新。
更新模塊312被配置為根據(jù)目標網(wǎng)絡狀態(tài)116來更新被管理的網(wǎng)絡。因此,更新模塊312可以確定或計算在觀測網(wǎng)絡狀態(tài)110與目標網(wǎng)絡狀態(tài)116之間的(一個或多個)差異,并且基于所確定的和/或所計算的差異來生成用于應用到網(wǎng)絡的特定命令(例如,設備特定命令)。例如,更新模塊312可以維持包含針對(例如,基于制造商和/或供應商的)特定類型的交換設備的個體更新動作的命令模板的命令池,其中更新動作可以由各種控制協(xié)議(例如,特定供應商API、開放流等)支持。更新模塊312可以被配置為將命令模板定位在命令池中,使得命令能夠被生成以正確地實現(xiàn)對狀態(tài)變量的更新。因此,更新模塊312被配置為代表應用112(1)…112(N)發(fā)布更新命令,使得應用不必理解更新各種設備的異構性質(zhì)。換言之,由應用(即,建議網(wǎng)絡狀態(tài)114)建議的網(wǎng)絡改變可以是通用的并且不需要指定用于將當前狀態(tài)變量值改變?yōu)槠谕麪顟B(tài)變量值的特定硬件命令。
在各個實施例中,更新模塊312可以根據(jù)排程并基于目標網(wǎng)絡狀態(tài)116來實現(xiàn)改變。例如,更新模塊312可以生成最終目標網(wǎng)絡狀態(tài)116并且開始根據(jù)定期排程(例如,每分鐘、每三分鐘、每十分鐘、每小時、每三個小時、每天,等等)來實現(xiàn)改變。在各個實施例中,更新模塊312可以不斷地將網(wǎng)絡從當前網(wǎng)絡狀態(tài)(例如,觀測網(wǎng)絡狀態(tài)110)移動到目標網(wǎng)絡狀態(tài)116(例如,直到實現(xiàn)目標網(wǎng)絡狀態(tài)116的收斂)。因此,更新模塊312可以繼續(xù)基于不斷地演變并且被更新的目標網(wǎng)絡狀態(tài)116來更新網(wǎng)絡。
在各個實施例中,設備302包括一個或多個通信單元320。(一個或多個)通信單元320可以被配置為促進到一個或多個網(wǎng)絡(例如,網(wǎng)絡104)、由各種服務或內(nèi)容提供商操作的應用112(1)…112(N)、和/或其他設備的有線連接和/或無線連接。因此,(一個或多個)通信單元320可以實現(xiàn)各種通信或網(wǎng)絡連接協(xié)議中的一個或多個。
圖4圖示了讀取和寫入網(wǎng)絡狀態(tài)的網(wǎng)絡管理服務102的示例示圖。例如,在給定時間,監(jiān)視模塊308讀取并收集狀態(tài)變量值以聚集被管理的網(wǎng)絡104的觀測網(wǎng)絡狀態(tài)110。觀測網(wǎng)絡狀態(tài)110的至少部分(例如,一個或多個特定狀態(tài)變量值)被提供到個體應用(例如,應用112(1)…112(N)中的每個應用)。個體應用評價觀測網(wǎng)絡狀態(tài)并提交指定對狀態(tài)變量的至少一個改變的建議網(wǎng)絡狀態(tài)114。例如,應用112(1)可以提交提議改變第一狀態(tài)變量的值SV 1(例如,來自圖2的狀態(tài)變量202(2))的建議網(wǎng)絡狀態(tài)402(1)。應用112(2)可以提交提議改變第二狀態(tài)變量的值SV 2(例如,來自圖2的狀態(tài)變量202(1))的建議網(wǎng)絡狀態(tài)402(2)。應用112(3)也可以提交提議改變第二狀態(tài)變量的值SV 2的建議網(wǎng)絡狀態(tài)402(3)。并且應用112(N)可以提交提議改變第三狀態(tài)變量的值SV 3(例如,來自圖2的狀態(tài)變量204(1))的建議網(wǎng)絡狀態(tài)402(N)。
如以上所討論的,檢查模塊310被配置為接收建議網(wǎng)絡狀態(tài)并確定在建議網(wǎng)絡狀態(tài)402(2)與402(3)之間存在沖突,這是因為應用112(2)和112(3)中的每個應用可能正提議狀態(tài)變量202(1)被改變?yōu)椴煌怠R虼?,檢查模塊310可能由于檢測到的沖突而選擇并接受建議網(wǎng)絡狀態(tài)402(2)和402(3)中的一個建議網(wǎng)絡狀態(tài),并且相反地,拒絕另一建議網(wǎng)絡狀態(tài)。如以上所討論的,選擇可以基于上次寫入成功機制、鎖定機制或基于優(yōu)先級的機制來做出。因此,圖4示出了檢查模塊310選擇并接受建議網(wǎng)絡狀態(tài)402(2),并且將所接受的建議網(wǎng)絡狀態(tài)402(2)與包括目標網(wǎng)絡狀態(tài)116的其他非沖突的建議網(wǎng)絡狀態(tài)合并。相反地,檢查模塊310拒絕建議網(wǎng)絡狀態(tài)402(3)。
類似地,檢查模塊310被配置為確定在建議網(wǎng)絡狀態(tài)402(1)與402(N)之間存在沖突,這是因為例如,如由圖2中的依賴關系208定義的,由應用112(1)提議的狀態(tài)變量202(2)的期望值可能與由應用112(N)提議的狀態(tài)變量204(1)的期望值不兼容。因此,檢查模塊310可能由于檢測到的沖突而選擇并接受建議網(wǎng)絡狀態(tài)402(1)和402(N)中的一個建議網(wǎng)絡狀態(tài),并且相反地,拒絕另一建議網(wǎng)絡狀態(tài)。圖4示出了檢查模塊310選擇并接受建議網(wǎng)絡狀態(tài)402(N),并且將所接受的建議網(wǎng)絡狀態(tài)402(N)與包括目標網(wǎng)絡狀態(tài)116的其他非沖突的建議網(wǎng)絡狀態(tài)合并。相反地,檢查模塊310拒絕建議網(wǎng)絡狀態(tài)402(1)。
在一些實現(xiàn)中,檢查模塊310被配置為將建議網(wǎng)絡狀態(tài)的接受或拒絕傳遞到應用,使得應用意識到它們所提議的改變是否能夠被實現(xiàn)在網(wǎng)絡上。檢查模塊310可以附加地或備選地存儲建議網(wǎng)絡狀態(tài)是被接受還是被拒絕的指示,使得應用112(1)…112(N)能夠獲知建議網(wǎng)絡狀態(tài)的接受或拒絕和/或?qū)ζ渥龀龇磻?。例如,檢查模塊310可以將指示以下的狀態(tài)條目存儲在例如狀態(tài)變量存儲314中:建議網(wǎng)絡狀態(tài)、提交了建議網(wǎng)絡狀態(tài)的應用、和/或建議網(wǎng)絡狀態(tài)被接受或被拒絕的原因。
更新模塊312然后被配置為確定在觀測網(wǎng)絡狀態(tài)與目標網(wǎng)絡狀態(tài)116之間的差異并且更新被管理的網(wǎng)絡104,使得狀態(tài)從觀測網(wǎng)絡狀態(tài)改變?yōu)槟繕司W(wǎng)絡狀態(tài)116。在各個實施例中,由更新模塊312用于確定差異的觀測網(wǎng)絡狀態(tài)是被提供到應用112(1)…112(N)的相同的觀測網(wǎng)絡狀態(tài)110。在其中在觀測網(wǎng)絡狀態(tài)110被初始地提供到應用112(1)…112(N)之后已經(jīng)改變網(wǎng)絡的狀態(tài)的情況中,由更新模塊312用于確定差異的觀測網(wǎng)絡狀態(tài)可以是包括可以與被提供到應用112(1)…112(N)的中包含的那些狀態(tài)變量不同的一個或多個狀態(tài)變量的最近觀測網(wǎng)絡。換言之,在將觀測網(wǎng)絡狀態(tài)110提供到應用112(1)…112(N)之后并且在檢查模塊310正在生成目標網(wǎng)絡狀態(tài)116的同時,監(jiān)視模塊308可能已經(jīng)讀取了針對一個或多個狀態(tài)變量的更新值。
圖5圖示了被描繪為邏輯流程圖的示例過程,其表示能夠采用硬件、軟件、固件或其組合實現(xiàn)的操作的序列。在軟件的背景下,操作表示計算機可執(zhí)行指令,計算機可執(zhí)行指令當由一個或多個處理器執(zhí)行時,將計算設備配置為執(zhí)行所記載的操作??傮w上,計算機可執(zhí)行指令包括將計算設備配置為執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構,等等。在一些實施例中,操作中的任何或全部可以整體地或部分地由硬件(例如,ASIC、專門的處理單元等)實現(xiàn)以執(zhí)行所描述的功能。在一些實例中,功能和/或模塊被實現(xiàn)為操作系統(tǒng)的部分。在其他實例中,功能和/或模塊被實現(xiàn)為設備驅(qū)動器、固件等的一部分。
操作被描述的順序不旨在被理解為限制,并且任何數(shù)目的所描述的操作能夠以任何順序和/或并行地組合以實現(xiàn)過程。
圖5圖示了生成針對網(wǎng)絡的狀態(tài)依賴關系圖并且定義用于操作網(wǎng)絡的策略的示例過程500。可以參考圖1-4中的任一附圖中所圖示的模塊、組件和/或元件描述圖5中的示例操作。
在502處,網(wǎng)絡管理服務102被配置為定義針對網(wǎng)絡的狀態(tài)變量并接收狀態(tài)變量定義??梢杂晒芾砭W(wǎng)絡(例如,應用112(1)…112(N))的應用、由網(wǎng)絡裝備(例如,設備106)的供應商或制造商、和/或由網(wǎng)絡管理服務102定義狀態(tài)變量。
在504處,網(wǎng)絡管理服務102被配置為定義狀態(tài)變量之間的依賴關系。還可以由管理網(wǎng)絡(例如,應用112(1)…112(N))的應用、由網(wǎng)絡裝備(例如,設備106)的供應商或制造商、和/或由網(wǎng)絡管理服務102定義依賴關系。例如,可能想要建議設備配置狀態(tài)變量從第一配置(例如,第一值)改變?yōu)榈诙渲?例如,第二值)的設備配置控制應用可以理解設備的第二配置取決于固件版本狀態(tài)變量的特定值(例如,需要設備運行新的操作系統(tǒng),而非較舊的操作系統(tǒng))。依賴關系還可以針對個體狀態(tài)變量被定義(例如,狀態(tài)變量可能不會同時具有兩個不同的值)。
在506處,網(wǎng)絡管理服務102被配置為生成針對網(wǎng)絡的狀態(tài)依賴關系圖。基于在操作504中定義的依賴關系來生成狀態(tài)依賴關系圖,以確保能夠在更新網(wǎng)絡之前檢測到并解決狀態(tài)沖突。因此,網(wǎng)絡的效率和可靠性得到改進,例如至少因為兩個或更多個獨立操作的應用不能夠試圖(i)同時控制(例如,直接寫入)相同的狀態(tài)變量(例如,將狀態(tài)變量設置為兩個或更多個不同的值)以及(ii)將兩個或更多個狀態(tài)變量改變?yōu)榭赡懿患嫒莸暮?或損害網(wǎng)絡的值。
在508處,網(wǎng)絡管理服務102被配置為定義用于操作網(wǎng)絡的策略。再次,可以由管理網(wǎng)絡的應用(例如,應用112(1)…112(N))、由網(wǎng)絡裝備(例如,設備106)的供應商或制造商、由網(wǎng)絡管理服務102(例如,管理網(wǎng)絡的實體)、和/或由被網(wǎng)絡服務的實體(例如,公司、教育機構、非盈利組織,等等)定義策略。在各個實施例中,策略可以是被建立以確保網(wǎng)絡(例如,針對客戶)以或高于服務的最低水平進行操作的服務水平協(xié)議。
在510處,網(wǎng)絡管理服務102被配置為示意所生成的狀態(tài)依賴關系圖和定義策略來管理網(wǎng)絡。例如,所生成的狀態(tài)依賴關系圖被用于確保避免在建議網(wǎng)絡狀態(tài)之間的狀態(tài)沖突,并且定義策略被用于確保網(wǎng)絡性能不會落入服務的最低水平以下。
示例過程500可以被實現(xiàn)為進行中的網(wǎng)絡管理和維護任務的一部分。因此,狀態(tài)變量、依賴關系和/或策略可以繼續(xù)在一時間段內(nèi)被定義和被更新,并且進而狀態(tài)依賴關系圖也可以被更新。示例過程500還可以被實現(xiàn)為網(wǎng)絡的初始建立(例如,用于執(zhí)行服務的管理網(wǎng)絡的構建)的一部分。
圖6圖示了基于對建議網(wǎng)絡狀態(tài)到目標網(wǎng)絡狀態(tài)中的合并來更新當前網(wǎng)絡狀態(tài)的示例過程600。可以參考圖1-5中的任一附圖中所圖示的模塊、組件、元件和/或操作來描述圖6中的示例操作。
在602處,監(jiān)視模塊308讀取觀測網(wǎng)絡狀態(tài)110。如以上所討論的,監(jiān)視模塊308可以讀取針對包括網(wǎng)絡狀態(tài)的各種狀態(tài)變量的當前值,并且然后將所讀取的值(例如,作為鍵值對)存儲在狀態(tài)變量存儲庫314中。
在604處,監(jiān)視模塊308將觀測網(wǎng)絡狀態(tài)110的至少一部分提供給個體應用(例如,應用112(1)…112(N))。例如,監(jiān)視模塊308可以經(jīng)由推送技術將一個或多個狀態(tài)變量值提供給特定應用,向特定應用提供的狀態(tài)變量值與由特定應用管理和控制的網(wǎng)絡功能和/或網(wǎng)絡方面有關。在另一示例中,監(jiān)視模塊308可以響應于接收到對于一個或多個狀態(tài)變量值的請求(例如,拉取請求)而將一個或多個狀態(tài)變量值提供到特定應用。
在606處,檢查模塊310從應用接收建議網(wǎng)絡狀態(tài)。個體建議網(wǎng)絡狀態(tài)提議對觀測網(wǎng)絡狀態(tài)110的改變,改變指示狀態(tài)變量從觀測值改變?yōu)槠谕怠H缫陨纤懻摰?,要被改變的觀測值可以是被傳遞到特定應用的觀測值,或者可以是在值在將觀測值提供到特定應用與從特定應用接收建議網(wǎng)絡狀態(tài)之間被更新或被改變的情況下由監(jiān)視模塊308讀取和存儲的更新后的觀測值。
在608處,檢查模塊310使用狀態(tài)依賴關系圖將接收到的建議網(wǎng)絡狀態(tài)的子集合并到目標網(wǎng)絡狀態(tài)中。因此,被合并到目標網(wǎng)絡狀態(tài)中的建議網(wǎng)絡狀態(tài)避免了狀態(tài)沖突并且因此是非沖突的建議網(wǎng)絡狀態(tài)。如果檢查模塊310在兩個或更多個建議網(wǎng)絡狀態(tài)之間檢測到?jīng)_突,則檢查模塊可以選擇并接受一個建議網(wǎng)絡狀態(tài)并拒絕其他建議網(wǎng)絡狀態(tài)。在各個實施例中,可以基于上次寫入成功機制、鎖定機制或基于優(yōu)先級的機制來做出選擇。
在各種實現(xiàn)中,檢查模塊310可以基于根據(jù)多層層次結構構造的狀態(tài)依賴關系圖來確定是否能夠?qū)懭霠顟B(tài)變量和/或是否存在沖突。使用多層層次結構,檢查模塊310能夠在將建議網(wǎng)絡狀態(tài)合并時是更有效的。例如,多層狀態(tài)依賴關系圖的頂層可以包括設備106的功率狀態(tài)變量。如果功率狀態(tài)變量具有指示功率被關閉的值,則比功率狀態(tài)變量層更低的層中的其他狀態(tài)變量可能是無效的或空的,這是因為不存在功率。因此,與這些較低的層相關聯(lián)的任何建議網(wǎng)絡狀態(tài)可能在功率被關閉時被拒絕。如果功率被恰當?shù)靥峁┑皆O備106(例如,功率狀態(tài)變量具有指示功率被打開的值),則網(wǎng)絡管理服務102能夠然后移動到多層層次結構中的下一層并且控制設備固件狀態(tài)變量,使得設備執(zhí)行特定固件。繼續(xù)該示例,設備固件狀態(tài)變量可以為用于管理作為多層層次結構中的下一層的部分的設備配置狀態(tài)變量的先決條件。一旦設備配置狀態(tài)被設定為特定值,網(wǎng)絡管理服務102就能夠管理路由控制狀態(tài)變量。因此,檢查模塊310可以基于針對多層狀態(tài)依賴關系圖建立的依賴關系的理解來接受和/或拒絕建議網(wǎng)絡狀態(tài)。
在610處,檢查模塊310確定目標網(wǎng)絡狀態(tài)是否違反定義策略。在各個實施例中,在每次建議網(wǎng)絡狀態(tài)被添加到包括已經(jīng)被合并的非沖突的建議網(wǎng)絡狀態(tài)的目標網(wǎng)絡狀態(tài)(例如,目標網(wǎng)絡狀態(tài)尚未完成并且容易由更新模塊312寫入到網(wǎng)絡)或與包括已經(jīng)被合并的非沖突的建議網(wǎng)絡狀態(tài)的目標網(wǎng)絡狀態(tài)合并時,檢查模塊310可以執(zhí)行該確定。在各個實施例中,檢查模塊310可以在目標網(wǎng)絡狀態(tài)完成并且容易由更新模塊312寫入到網(wǎng)絡之后執(zhí)行該確定。
在612處,在各個實施例中,檢查模塊310可以更新目標網(wǎng)絡狀態(tài),使得其遵守定義策略。例如,如果在操作610處確定違反,則檢查模塊310可以將一個或多個非沖突的建議網(wǎng)絡狀態(tài)從目標網(wǎng)絡狀態(tài)移除,以解決違反并且確保目標網(wǎng)絡狀態(tài)遵守定義策略。
在614處,更新模塊312將網(wǎng)絡的狀態(tài)改變?yōu)槟繕司W(wǎng)絡狀態(tài)(例如,將被傳遞到應用的觀測網(wǎng)絡狀態(tài)轉(zhuǎn)變?yōu)槟繕司W(wǎng)絡狀態(tài),將更新后的或最近的觀測網(wǎng)絡狀態(tài)改變?yōu)槟繕司W(wǎng)絡狀態(tài))。例如,更新模塊312可以確定在當前網(wǎng)絡狀態(tài)與目標網(wǎng)絡狀態(tài)之間的差異,基于差異來生成命令,并且然后向網(wǎng)絡的設備106發(fā)布命令(例如,寫入改變),使得狀態(tài)變量能夠從由網(wǎng)絡管理服務觀測到的當前值改變?yōu)橛蓱闷谕闹怠?/p>
圖7圖示了繼續(xù)生成并更新目標網(wǎng)絡狀態(tài)的示例過程700。可以參考圖1-6中的任一附圖中所圖示的模塊、組件、元件和/或操作進行描述圖7中的示例操作。
在702處,檢查模塊310被提供有建議網(wǎng)絡狀態(tài)。所提供的建議網(wǎng)絡狀態(tài)可以為響應于最近觀測網(wǎng)絡狀態(tài)的讀取、存儲和提供而從各個應用接收到的建議網(wǎng)絡狀態(tài)中的一個建議網(wǎng)絡狀態(tài)。
704內(nèi)的個體操作中的一個或多個然后被執(zhí)行以確定所提供的建議網(wǎng)絡狀態(tài)是否要被合并到目標網(wǎng)絡狀態(tài)中??梢酝ㄟ^訪問狀態(tài)依賴關系圖和/或定義策略來執(zhí)行704中的個體操作。在704(A)處,檢查模塊310確定在所提供的建議網(wǎng)絡狀態(tài)與最近觀測網(wǎng)絡狀態(tài)之間是否存在狀態(tài)沖突。在一些實例中,最近觀測網(wǎng)絡狀態(tài)可以為被提供到應用的觀測網(wǎng)絡狀態(tài)。在一些實例中,最近觀測網(wǎng)絡狀態(tài)可以與被提供到應用的觀測網(wǎng)絡狀態(tài)不同。因此,一些狀態(tài)變量和/或狀態(tài)變量值可能不再是有意義的。
例如,監(jiān)視模塊308可能已經(jīng)初始地讀取了設備被供電并將此傳遞到應用。作為響應,應用可以提交提議對針對固件版本狀態(tài)變量的值的改變的建議網(wǎng)絡狀態(tài)。然而,用于被供電的設備的功率可能已經(jīng)被關閉使得,因此能夠例如被修復。因此,在提議對針對固件版本狀態(tài)變量的值的改變的建議網(wǎng)絡狀態(tài)由檢查模塊310接收并處理時,觀測網(wǎng)絡狀態(tài)已經(jīng)改變。由于功率被關閉并且固件版本狀態(tài)變量依賴于功率狀態(tài)變量,因此固件版本狀態(tài)變量是暫時不可控制的狀態(tài)變量(例如,直到設備的功率被重新打開)。在該示例中,建議網(wǎng)絡狀態(tài)被檢查模塊310拒絕。
在704(B)處,檢查模塊310確定在所提供的建議網(wǎng)絡狀態(tài)與目標網(wǎng)絡狀態(tài)之間是否存在狀態(tài)沖突。在最終目標網(wǎng)絡狀態(tài)準備好由更新模塊310寫入到網(wǎng)絡之前,目標網(wǎng)絡狀態(tài)可以包括先前已經(jīng)由檢查模塊310接受并且被合并到目標網(wǎng)絡狀態(tài)中的非沖突的建議網(wǎng)絡狀態(tài)。因此,檢查模塊310可以執(zhí)行在所提供的建議網(wǎng)絡狀態(tài)與已經(jīng)被合并到目標網(wǎng)絡狀態(tài)中的每個非沖突的建議網(wǎng)絡狀態(tài)之間的檢查以檢測狀態(tài)沖突。
在704(C)處,檢查模塊310確定將所提供的建議網(wǎng)絡狀態(tài)合并到目標網(wǎng)絡狀態(tài)中是否導致策略違反。
在決策框706處,檢查模塊310確定是否檢測到來自操作704(A)或操作704(B)的沖突或者是否檢測到來自操作704(C)的策略違反。如果對判斷框706的回答是“否”,則在708處檢查模塊310接受所提供的建議網(wǎng)絡狀態(tài)并將所提供的建議網(wǎng)絡狀態(tài)合并到目標網(wǎng)絡狀態(tài)中。迭代過程然后返回到操作702,其中檢查模塊310被提供有下一建議網(wǎng)絡狀態(tài)。
如果對決策框706的回答是“是”,則在710處檢查模塊310拒絕所提供的建議網(wǎng)絡狀態(tài)并且不將所提供的建議網(wǎng)絡狀態(tài)合并到目標網(wǎng)絡狀態(tài)中,使得避免狀態(tài)沖突和/或使得目標網(wǎng)絡狀態(tài)遵守定義策略。迭代過程然后返回到操作702,其中檢查模塊310被提供有下一建議網(wǎng)絡狀態(tài)。
在各個實施例中,代替在710處拒絕所提供的建議網(wǎng)絡狀態(tài),檢查模塊310可以將已經(jīng)被合并到目標網(wǎng)絡狀態(tài)中的沖突的建議網(wǎng)絡狀態(tài)從目標網(wǎng)絡狀態(tài)移除。然后,即使在檢測到?jīng)_突之后,檢查模塊310可以能夠接受所提供的建議網(wǎng)絡狀態(tài)并將所提供的建議網(wǎng)絡狀態(tài)合并到目標網(wǎng)絡狀態(tài)中。在所提供的建議網(wǎng)絡狀態(tài)具有超過已經(jīng)被合并到目標網(wǎng)絡狀態(tài)中的沖突的建議網(wǎng)絡狀態(tài)的優(yōu)先級時,這可能發(fā)生。
示例實現(xiàn)
實現(xiàn)A,一種方法,包括:向獨立地管理網(wǎng)絡的至少一部分的個體應用提供觀測網(wǎng)絡狀態(tài)的一個或多個狀態(tài)變量值;從多個應用接收到多個建議網(wǎng)絡狀態(tài),其中個體建議網(wǎng)絡狀態(tài)提議對一個或多個狀態(tài)變量值的一個或多個改變;將所述多個建議網(wǎng)絡狀態(tài)中的至少子集合并到目標網(wǎng)絡狀態(tài)中,其中所述多個建議網(wǎng)絡狀態(tài)的中所述子集中沒有個體建議網(wǎng)絡狀態(tài)與所述多個建議網(wǎng)絡狀態(tài)中的所述子集中的另一個體建議網(wǎng)絡狀態(tài)沖突;以及由一個或多個硬件處理器至少部分地基于所述目標網(wǎng)絡狀態(tài)來改變所述網(wǎng)絡的狀態(tài)。
實現(xiàn)B,根據(jù)實現(xiàn)A所述的方法,還包括:確定所述目標網(wǎng)絡狀態(tài)是否違反針對所述網(wǎng)絡建立的一個或多個定義策略;以及響應于確定所述目標網(wǎng)絡狀態(tài)違反針對所述網(wǎng)絡建立的所述一個或多個定義的至少一個定義策略,通過將所述多個建議網(wǎng)絡狀態(tài)中的至少一個建議網(wǎng)絡狀態(tài)移除來更新所述目標網(wǎng)絡狀態(tài),使得更新后的目標網(wǎng)絡狀態(tài)遵守針對所述網(wǎng)絡建立的所述一個或多個定義策略。
實現(xiàn)C,根據(jù)實現(xiàn)B所述的方法,其中所述一個或多個定義策略包括至少一個服務水平協(xié)議。
實現(xiàn)D,根據(jù)實現(xiàn)A到C中的任一項所述的方法,還包括:確定在至少兩個建議網(wǎng)絡狀態(tài)之間存在沖突;選擇所述至少兩個建議網(wǎng)絡狀態(tài)中的一個建議網(wǎng)絡狀態(tài)以接受并且合并到所述目標網(wǎng)絡狀態(tài)中;以及拒絕所述至少兩個建議網(wǎng)絡狀態(tài)中的至少一個其他建議網(wǎng)絡狀態(tài),使得所述至少一個其他建議網(wǎng)絡狀態(tài)不被合并到所述目標網(wǎng)絡狀態(tài)中。
實現(xiàn)E,根據(jù)實現(xiàn)D所述的方法,其中所述選擇至少部分地基于以下各項中的一項:上次寫入成功選擇機制、鎖定選擇機制或基于優(yōu)先級的選擇機制。
實現(xiàn)F,根據(jù)實現(xiàn)A到E中的任一項所述的方法,其中所述改變包括:確定在所述觀測網(wǎng)絡狀態(tài)與所述目標網(wǎng)絡狀態(tài)之間的差異;至少部分地基于所述差異來生成用于寫入到所述網(wǎng)絡的一個或多個設備的一個或多個設備特定命令;以及將所述一個或多個設備特定命令寫入到所述一個或多個設備以將所述網(wǎng)絡的所述狀態(tài)從所述觀測網(wǎng)絡狀態(tài)改變?yōu)樗瞿繕司W(wǎng)絡狀態(tài)。
實現(xiàn)G,根據(jù)實現(xiàn)A到E中的任一項所述的方法,其中所述改變包括:確定在更新后的觀測網(wǎng)絡狀態(tài)與所述目標網(wǎng)絡狀態(tài)之間的差異,所述更新后的觀測網(wǎng)絡狀態(tài)比用于向所述個體應用提供的所述一個或多個狀態(tài)變量值的所述觀測網(wǎng)絡狀態(tài)更最近地被讀取;至少部分地基于所述差異來生成用于寫入到所述網(wǎng)絡的一個或多個設備的一個或多個設備特定命令;以及將所述一個或多個設備特定命令寫入到所述一個或多個設備以將所述網(wǎng)絡的所述狀態(tài)從所述更新后的觀測網(wǎng)絡狀態(tài)改變?yōu)樗瞿繕司W(wǎng)絡狀態(tài)。
實現(xiàn)H,根據(jù)實現(xiàn)A到G中的任一項所述的方法,還包括維持定義第一狀態(tài)變量依賴于第二狀態(tài)變量的狀態(tài)依賴關系圖。
實現(xiàn)I,根據(jù)實現(xiàn)A到H中的任一項所述的方法,其中狀態(tài)變量是由至少一個應用可控制的所述網(wǎng)絡的組件。
實現(xiàn)J,根據(jù)實現(xiàn)A到I中的任一項所述的方法,其中所述一個或多個狀態(tài)變量值表示所述網(wǎng)絡的設備的狀態(tài),所述方法還包括:使用設備特定技術從所述設備讀取所述一個或多個狀態(tài)變量值;以及以由所述多個應用理解的統(tǒng)一格式存儲所述一個或多個狀態(tài)變量值。
實現(xiàn)K,一個或多個計算機存儲介質(zhì),存儲計算機可執(zhí)行指令,所述計算機可執(zhí)行指令當由一個或多個處理器執(zhí)行時,將所述一個或多個處理器編程為:確定在至少兩個建議網(wǎng)絡狀態(tài)之間是否存在沖突,其中個體建議網(wǎng)絡狀態(tài)請求網(wǎng)絡的狀態(tài)變量的值被改變?yōu)槠谕担贿x擇所述至少兩個建議網(wǎng)絡狀態(tài)中的一個建議網(wǎng)絡狀態(tài)以接受并且合并到目標網(wǎng)絡狀態(tài)中;拒絕所述至少兩個建議網(wǎng)絡狀態(tài)中的至少一個其他建議網(wǎng)絡狀態(tài),使得所述至少一個其他建議網(wǎng)絡狀態(tài)不被合并到所述目標網(wǎng)絡狀態(tài)中;以及至少部分地基于所述目標網(wǎng)絡狀態(tài)來改變所述網(wǎng)絡的狀態(tài)。
實現(xiàn)L,根據(jù)實現(xiàn)K所述的一個或多個計算機存儲介質(zhì),其中所述可執(zhí)行指令還將所述一個或多個處理器編程為:訪問定義所述網(wǎng)絡的狀態(tài)變量之間的依賴關系的狀態(tài)依賴關系圖;并且使用所述狀態(tài)依賴關系圖來檢測所述沖突。
實現(xiàn)M,根據(jù)實現(xiàn)L所述的一個或多個計算機存儲介質(zhì),其中所接受的建議網(wǎng)絡狀態(tài)請求所述網(wǎng)絡的第一狀態(tài)變量的值被改變?yōu)榕c所述第一狀態(tài)變量相關聯(lián)的第一期望值;所拒絕的至少一個建議網(wǎng)絡狀態(tài)請求所述網(wǎng)絡的第二狀態(tài)變量的值被改變?yōu)榕c所述第二狀態(tài)變量相關聯(lián)的第二期望值;并且所述狀態(tài)依賴關系圖定義所述第一期望值與所述第二期望值不兼容。
實現(xiàn)N,根據(jù)實現(xiàn)L或?qū)崿F(xiàn)M所述的一個或多個計算機存儲介質(zhì),其中所述狀態(tài)依賴關系圖是多層狀態(tài)依賴關系圖,其中每層包括特定類型的狀態(tài)變量,并且在所述多層狀態(tài)依賴關系圖中的各層之間存在所述依賴關系中的一種或多種依賴關系。
實現(xiàn)O,根據(jù)實現(xiàn)K到N中的任一項所述的一個或多個計算機存儲介質(zhì),其中所述可執(zhí)行指令還將所述一個或多個處理器編程為:從所述網(wǎng)絡讀取觀測網(wǎng)絡狀態(tài);向獨立地管理所述網(wǎng)絡的至少一部分的個體應用提供所述觀測網(wǎng)絡狀態(tài);以及從所述多個應用中的至少兩個應用接收所述至少兩個建議網(wǎng)絡狀態(tài)。
實現(xiàn)P,根據(jù)實現(xiàn)K到O中的任一項所述的一個或多個計算機存儲介質(zhì),其中所述可執(zhí)行指令還將所述一個或多個處理器編程為:確定所述目標網(wǎng)絡狀態(tài)是否違反針對所述網(wǎng)絡建立的一個或多個定義策略;并且響應于確定所述目標網(wǎng)絡狀態(tài)違反針對所述網(wǎng)絡建立的所述一個或多個定義策略中的至少一個定義策略,從所述目標網(wǎng)絡狀態(tài)移除至少一個建議網(wǎng)絡狀態(tài),使得目標網(wǎng)絡狀態(tài)遵守針對所述網(wǎng)絡建立的所述一個或多個定義策略。
實現(xiàn)Q,一個或多個設備,包括:一個或多個處理器;一個或多個存儲器;監(jiān)視模塊,其被存儲在所述一個或多個存儲器上并且由所述一個或多個處理器執(zhí)行,以讀取網(wǎng)絡的觀測網(wǎng)絡狀態(tài)并且將所述觀測網(wǎng)絡狀態(tài)提供到獨立地管理所述網(wǎng)絡的至少部分的個體應用;檢查模塊,其被存儲在所述一個或多個存儲器上并且由所述一個或多個處理器執(zhí)行以通過以下來生成目標網(wǎng)絡狀態(tài):(i)確定在從多個應用接收到的建議網(wǎng)絡狀態(tài)之間是否存在一個或多個狀態(tài)變量沖突,以及(ii)將非沖突的建議網(wǎng)絡狀態(tài)合并到所述目標網(wǎng)絡狀態(tài)中,其中個體建議網(wǎng)絡狀態(tài)提議對針對所述網(wǎng)絡定義的一個或多個狀態(tài)變量的一個或多個值的一個或多個改變;以及更新模塊,其被存儲在所述一個或多個存儲器上并且由所述一個或多個處理器執(zhí)行以將所述目標網(wǎng)絡狀態(tài)寫入到所述網(wǎng)絡。
實現(xiàn)R,根據(jù)實現(xiàn)Q所述的一個或多個設備,其中所述檢查模塊訪問狀態(tài)依賴關系圖以確定在建議網(wǎng)絡狀態(tài)之間是否存在所述一個或多個狀態(tài)變量沖突。
實現(xiàn)S,根據(jù)實現(xiàn)Q或?qū)崿F(xiàn)R所述的一個或多個設備,其中所述檢查模塊確定所述目標網(wǎng)絡狀態(tài)是否違反針對所述網(wǎng)絡的一個或多個定義策略;并且響應于確定所述目標網(wǎng)絡狀態(tài)違反一個或多個定義策略中的至少一個定義策略,所述檢查模塊從所述目標網(wǎng)絡狀態(tài)移除至少一個建議網(wǎng)絡狀態(tài),使得目標網(wǎng)絡狀態(tài)遵守所述一個或多個定義策略。
實現(xiàn)T,根據(jù)實現(xiàn)Q到S中的任一項所述的一個或多個設備,其中所述更新模塊:確定在觀測網(wǎng)絡狀態(tài)與所述目標網(wǎng)絡狀態(tài)之間的差異;至少部分地基于所述差異來生成用于寫入到所述網(wǎng)絡的一個或多個設備的一個或多個設備特定命令;以及將所述一個或多個設備特定命令寫入到所述一個或多個設備以將所述觀測網(wǎng)絡狀態(tài)轉(zhuǎn)變?yōu)樗瞿繕司W(wǎng)絡狀態(tài)。
結論
雖然本公開內(nèi)容可以使用特定于結構特征和/或方法動作的語言,但是本發(fā)明不限于在此所描述的特定特征或動作。相反,特定特征和動作被公開為實現(xiàn)本發(fā)明的說明性形式。