一種拓撲圖生成方法及裝置與流程
2023-05-29 01:54:16

本發明涉及數據處理技術領域,具體涉及一種拓撲圖生成方法及裝置。
背景技術:
雲平臺是管理各種雲資源的資源整合平臺,拓撲圖是能夠直觀的表現數據之間的邏輯關係的圖,因此,在雲平臺中,一般採用拓撲圖來展示數據之間的關係,在表示雲平臺的資源關係,表現業務間的邏輯關係,大屏演示等情況下,都會用到拓撲圖。由於拓撲圖中展示的數據之間都要遵循一定的邏輯關係,但云平臺中各個模塊產生的數據一般是雜亂而無序的,不具有邏輯關係,不符合拓撲圖數據結構,無法直接生成拓撲圖。
因此,如何提供一種依據云平臺產生的數據生成拓撲圖的方法,成為目前亟待解決的技術問題。
技術實現要素:
有鑑於此,本發明實施例提供一種拓撲圖生成方法及裝置,能夠依據云平臺產生的數據生成拓撲圖。
為實現上述目的,本發明實施例提供如下技術方案:
一種拓撲圖生成方法,包括:
從雲平臺中獲取待處理數據;
按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;
獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;
依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
優選的,按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據的過程包括:
按照不同數據類型各自對應的數據特點,確定各數據類型下的待處理數據各自對應的數據級別;
針對各數據類型下的待處理數據,按照預設拓撲圖的數據結構,將不同數據級別的待處理數據劃分到預設拓撲圖的不同數據結構層中,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據。
優選的,在獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性之前,還包括:
將劃分到預設拓撲圖的不同數據結構層中的待處理數據按照預設排序規則進行排序。
優選的,所述獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性的過程包括:
針對各待處理數據在預設拓撲圖數據結構中的位置,以及各待處理數據在預設拓撲圖數據結構中與其他待處理數據的關係,獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性。
優選的,所述數據屬性包括:待處理數據在預設拓撲圖數據結構中的標識號、名稱、父節點標識號、序號、層級、坐標以及指向標識號中的至少一種。
一種拓撲圖生成裝置,包括:
待處理數據獲取單元,用於從雲平臺中獲取待處理數據;
第一排序單元,用於按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;
數據屬性獲取單元,用於獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;
拓撲圖生成單元,用於依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
優選的,所述第一排序單元包括:
數據級別確定模塊,用於按照不同數據類型各自對應的數據特點,確定各數據類型下的待處理數據各自對應的數據級別;
劃分單元,用於針對各數據類型下的待處理數據,按照預設拓撲圖的數據結構,將不同數據級別的待處理數據劃分到預設拓撲圖的不同數據結構層中,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據。
優選的,還包括:
第二排序單元,用於將劃分到預設拓撲圖的不同數據結構層中的待處理數據按照預設排序規則進行排序。
優選的,所述數據屬性獲取單元包括:
數據屬性獲取子單元,用於針對各待處理數據在預設拓撲圖數據結構中的位置,以及各待處理數據在預設拓撲圖數據結構中與其他待處理數據的關係,獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性。
優選的,所述數據屬性包括:待處理數據在預設拓撲圖數據結構中的標識號、名稱、父節點標識號、序號、層級、坐標以及指向標識號中的至少一種。
基於上述技術方案,本發明實施例中公開了一種拓撲圖生成方法及裝置,包括:從雲平臺中獲取待處理數據;按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。通過本發明實施例中的技術方案,能夠得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;以及符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;從而依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明實施例提供的一種拓撲圖生成方法的流程圖;
圖2為本發明實施例提供的另一種拓撲圖生成方法的流程圖;
圖3為本發明實施例提供的一種拓撲圖生成裝置的結構框圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
拓撲圖上的節點,是基於Canvas繪製的,因為雲平臺所採用的插件都是基於Canvas開發,因此,找到一種適合Canvas的數據結構,則能夠適應所有的拓撲圖。我們要使拓撲圖按照指定的樣式去呈現,就要給每個節點定義一些基本屬性。拓撲圖中的每個節點的基本屬性包括節點坐標,節點圖標,節點大小,節點狀態,節點層級,節點名稱,這些是一個節點的基本屬性。節點之間還有連線,因此數據結構中需要有表示數據連接的數據,如果是有向線,則需要指定起點和終點,如果是無向線,只需給出兩個節點即可。因此,制定出一個規範的數據結構是使拓撲圖簡單易用的關鍵。在當前的雲平臺中,提供的接口多是無序的,並不是按照拓撲圖需要的數據結構來的。因為後臺採集的數據無法清楚的知道需要顯示成什麼樣的結構。不僅僅在雲平臺,在外部的許多接口中,如OpenStack提供的一些接口,也是無序無結構的數據。針對這些數據,本發明實施例提供以下拓撲圖生成方法。
圖1示出了一種拓撲圖生成方法的流程圖,基於Canvas實現,所述方法可以包括:
步驟S100、從雲平臺中獲取待處理數據;
需要說明的是,本發明實施例中可以從雲平臺的多個模塊中獲取待處理數據,預設拓撲圖的結構決定了待處理數據的來源,當預設拓撲圖要展示雲資源結構的情況下,就需要從雲平臺中的虛擬數據中心、集群、虛擬控制中心、主機、存儲等多個模塊中獲取待處理數據。
本發明實施例中可以利用雲平臺的數據傳輸機制,從雲平臺中獲取待處理數據。
步驟S110、按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;
預設拓撲圖的數據結構可以為樹狀結構或層級結構,本發明實施例不做具體限定。
由於拓撲圖一般有一個根節點,根節點的數據為待處理數據中最頂層的數據,可以為優先級最高的數據,當預設拓撲圖要展示雲資源結構的情況下,一般虛擬控制中心中的數據為最頂層的數據,作為根節點處的數據;當預設拓撲圖要展示監控結果的情況下,一般最上層業務節點或資源大類中的數據為最頂層的數據,作為根節點處的數據。
本發明實施例中可以按照拓撲圖結構中從根節點到子節點,從父節點到子節點的順序,將不同數據類型的待處理數據分別進行排序。
步驟S120、獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;
需要說明的是,所述數據屬性包括:待處理數據在預設拓撲圖數據結構中的標識號、名稱、父節點標識號、序號、層級、坐標以及指向標識號中的至少一種。
待處理數據在預設拓撲圖數據結構中的標識號能夠唯一標識一待處理數據;待處理數據在預設拓撲圖數據結構中的父節點標識號為該待處理數據的父節點標識號;待處理數據在預設拓撲圖數據結構中的序號為按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序的序號;待處理數據在預設拓撲圖數據結構中的坐標可以採用平面(x,y)坐標表示;待處理數據在預設拓撲圖數據結構中指向節點標識號為該待處理數據指向的另一待處理數據的標識號。
步驟S130、依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
本發明實施例中可以依據每個待處理數據在預設拓撲圖數據結構中的標識號、名稱、父節點標識號、序號、層級、坐標以及指向標識號中的至少一種數據屬性,生成拓撲圖。
需要說明的是,本發明實施例中可以採用界面的拓撲圖插件來生成拓撲圖,拓撲圖插件是針對HTML5的。
本發明實施例中公開了一種拓撲圖生成方法及裝置,包括:從雲平臺中獲取待處理數據;按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。通過本發明實施例中的技術方案,能夠得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;以及符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;從而依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。實現了雲平臺中不規則無序數據的有序化和格式化。對雲平臺中的拓撲圖來說,減少了處理數據的工作量,使拓撲圖的展示部分簡單和方便,優化了拓撲展示部分的代碼。
下面,本發明實例中具體介紹另一種拓撲圖生成方法,請參照圖2公開的拓撲圖生成方法流程圖,該方法可以包括:
步驟S200、從雲平臺中獲取待處理數據;
步驟S210、按照不同數據類型各自對應的數據特點,確定各數據類型下的待處理數據各自對應的數據級別;
步驟S220、針對各數據類型下的待處理數據,按照預設拓撲圖的數據結構,將不同數據級別的待處理數據劃分到預設拓撲圖的不同數據結構層中,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;
需要說明的是,同一數據級別的待處理數據被劃分到同一數據組中,同一數據組中的待處理數據具有同一數據級別,同一數據組中的每一待處理數據都對應一序號,待處理數據是按照序號從小到大的順序進行排列的。
步驟S230、將劃分到預設拓撲圖的不同數據結構層中的待處理數據按照預設排序規則進行排序;
需要說明的是,本發明實施例中可以將劃分到預設拓撲圖的不同數據結構層中的待處理數據按照時間規則進行排序,還可以按照安裝名稱進行排序,本發明實施例中不做具體限定。
步驟S240、針對各待處理數據在預設拓撲圖數據結構中的位置,以及各待處理數據在預設拓撲圖數據結構中與其他待處理數據的關係,獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;
步驟S250、依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
本發明實施例公開的拓撲圖生成方法中採用的排序算法主要考慮了算法的簡潔性和快捷性,犧牲了一些空間複雜度,減少了時間複雜度。能夠快速和準確的生成拓撲圖,不僅減少了引擎緩存溢出的概率,還可以直接應用,減少了拓撲部分的代碼編寫。
下面對本發明實施例提供的拓撲圖生成裝置進行介紹,下文描述的拓撲圖生成裝置可與上文拓撲圖生成方法相互對應參照。
圖3為本發明實施例提供的拓撲圖生成裝置的結構框圖,該拓撲圖生成裝置可以包括:
待處理數據獲取單元100,用於從雲平臺中獲取待處理數據;
第一排序單元110,用於按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;
數據屬性獲取單元120,用於獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;
拓撲圖生成單元130,用於依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
所述第一排序單元包括:
數據級別確定模塊,用於按照不同數據類型各自對應的數據特點,確定各數據類型下的待處理數據各自對應的數據級別;
劃分單元,用於針對各數據類型下的待處理數據,按照預設拓撲圖的數據結構,將不同數據級別的待處理數據劃分到預設拓撲圖的不同數據結構層中,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據。
還包括:
第二排序單元,用於將劃分到預設拓撲圖的不同數據結構層中的待處理數據按照預設排序規則進行排序。
所述數據屬性獲取單元包括:
數據屬性獲取子單元,用於針對各待處理數據在預設拓撲圖數據結構中的位置,以及各待處理數據在預設拓撲圖數據結構中與其他待處理數據的關係,獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性。
所述數據屬性包括:待處理數據在預設拓撲圖數據結構中的標識號、名稱、父節點標識號、序號、層級、坐標以及指向標識號中的至少一種。
綜上所述:
本發明實施例中公開了一種拓撲圖生成方法及裝置,包括:從雲平臺中獲取待處理數據;按照預設拓撲圖的數據結構,將不同數據類型的待處理數據分別進行排序,得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;獲取符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。通過本發明實施例中的技術方案,能夠得到各數據類型各自對應的符合預設拓撲圖數據結構的待處理數據;以及符合預設拓撲圖數據結構的各待處理數據在預設拓撲圖數據結構中的數據屬性;從而依據各待處理數據在預設拓撲圖數據結構中的數據屬性,生成拓撲圖。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬碟、可移動磁碟、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。