本發明涉及網絡技術領域,更具體的說是一種基于Openflow協議的實時數據分發系統和方法。
背景技術:
隨著控制、通信、計算機等技術的飛速發展,各種應用系統的體系結構呈現出以網絡為中心的趨勢,這對通信網絡的實時性、動態性、靈活性都提出了更高的要求。同時希望系統中各個參與者間是一種松散耦合的關系,且QoS請求還需要支持靈活的交互機制和通信模式。現有的發布/訂閱系統能夠提供松耦合的通信模式,但卻缺乏合適的系統控制和應用級QoS支持。因此,急需一種基于發布/訂閱模式且能有效合理地控制部署實時系統所需的QoS參數的系統來滿足分布式實時應用需求。
動態應用的本質是對底層通信系統和通信網絡的挑戰,這就增加了對網絡可擴展性和支持高QoS特性的挑戰。實際上,如果網絡資源利用率是關注的焦點,那么網絡必須足夠靈活來實現針對網絡應用變化的重新規劃。當前的方法要么解決應用的動態性問題,要么關注網絡資源的利用率,且都是基于靜態的專用網絡或覆蓋網,這使得按需設置網絡性能很困難。軟件定義網絡SDN的出現為解決上述問題提供了新的方法,其靈活的組網特點能夠實現細粒度按需動態網絡規劃。因此,SDN能夠有效地支撐動態分布式實時應用,同時保證網絡資源利用率很高。
本發明主要目的是提出一種結合數據分發服務中間件和基于Openflow協議的SDN的通信系統來高效支持動態實時應用。采用數據分發服務的原因是因為數據分發服務應用被成功用于高性能分布式實時系統,能夠提供許多QoS參數用于數據分發服務表達應用的需求。這些QoS參數大部分是動態的,且可以在運行時改變,以保證數據分發服務中間件捕獲動態應用的QoS需求。數據分發服務支持的Pub/sub模型能夠進一步捕獲應用的動態性,允許應用組成部分動態 的改動數據流。為了確保QoS,對終端用戶和網絡資料的控制都是強制的。對于終端用戶,當數據分發服務存在于終端用戶,就需要定義一組機制來實現QoS認知控制來接入主機資源;對于網絡資源,網絡接口需要根據應用需求管理網絡資源,這些需求正好是SDN能夠提供的。
技術實現要素:
本發明針對分布式實時應用,提出了一種基于Openflow協議的實時數據分發系統和方法,采用數據分發服務中間件和軟件定義網絡相結合的網絡框架,以滿足分布式實時應用對QoS動態變化的需求。
本發明為實現上述目的所采用的技術方案是:一種基于Openflow協議的實時數據分發系統,包括:
數據分發服務組件,基于以數據為中心的分發/訂閱模型,用于提供實時數據傳送,并通過QoS分級和搶占機制來控制不同用戶對通信質量的需求;基于發布/訂閱傳輸模型的用戶QoS需求分析和定義,并將結果反饋給控制器,控制器統一下發流表到底層交換設備;
SDN組件,用于將數據平臺和控制平臺分離,提供統一管控機制。
所述數據分發服務組件包括:
DDS代理模塊,用于分析收到的請求數據,將其解析為能夠被SDN組件中的控制器模塊理解的數據形式,然后發送到控制器模塊;
DDS接口API模塊,是路由代理模塊和DDS代理模塊的信息交互通道;
路由代理模塊,用于發現訂閱請求和發布請求,并將收到的請求通過DDS接口API模塊發送到DDS代理模塊。
所述SDN組件包括:
北向接口模塊,是控制器模塊與各種應用的交互通道;
控制器模塊,用于對數據分發服務組件中的DDS代理模塊發來的請求進行分析計算,并獲得相應的路徑信息,下發到DDS代理模塊;
南向接口模塊,是控制器模塊與OF交換機模塊的連接通道;
OF交換機模塊,是支持Openflow協議的交換機,負責網絡底層數據的轉發,并通過南向接口模塊與控制器模塊交互控制信息;
Openflow協議模塊,是一種交換技術,建立軟件定義網絡,實現數據流只在底層的OF交換機模塊中傳輸,控制流由控制器模塊以流表的形式統一下發到各個OF交換機模塊。
所述控制器模塊包括:
網絡拓撲模塊,用于存儲網絡中邏輯拓撲和物理拓撲信息;
QoS模塊,是存儲并分析網絡QoS需求的模塊,負責對已有的QoS進行存儲,并對新的QoS需求進行響應分析;
負載均衡模塊,是實現網絡資源合理分配的模塊,對網絡的帶寬和緩存資源進行全局管理,結合網絡拓撲和QoS需求為數據流分配合理的網絡資源,以最大化網絡資源利用率;
Openflow模塊,是Openflow協議的控制器部分,負責流表的下發及OF交換機傳來的控制數據的分析處理;
Vlan模塊,用于針對不同的發布/訂閱組進行vlan劃分,即定義一個有相同主題的vlan,并針對不同vlan中的數據進行統一的處理。
所述Openflow協議是Openflow-spec-v1.4.0。
所述QoS需求包括時延、帶寬、優先級、搶占式需求。
一種基于Openflow協議的實時數據分發方法,包括以下步驟:
步驟1:當一個終端應用發起發布數據請求后,該請求被傳輸到DD組件中,接著傳到SDN組件中按照主題進行存儲并返回發布成功消息;
步驟2:當有訂閱端發起訂閱請求后,該請求也同樣被DDS組件傳到控制器模塊中,控制器模塊按主題查找是否有需求的主題已經被注冊,如果沒有則給訂閱端發送訂閱失敗消息,如果有則返回訂閱成功消息;
步驟3:數據分發服務組件分析訂閱端的QoS需求,并將該QoS信息傳送到SDN組件中的控制器模塊,控制器模塊進行存儲分析,調用相關的拓撲信息、 QoS功能模塊和負載均衡功能模塊計算出最優的路由路徑;
步驟4:控制器模塊將最優的路由路徑信息轉化為各個相關設備的流表信息,然后下發到OF交換機中,并按照流表轉發來自終端設備的數據,實現符合QoS需求的數據實時分發。
本發明具有以下優點及有益效果:解決了分布式實時應用對通信時延和帶寬的動態需求問題,實現了對網絡資源的高效靈活配置。本發明中基于發布/訂閱分發模式的數據分發中間件,具有動態分配QoS參數的能力,以應對實時變化的數據流及其QoS需求。本發明中基于Openflow協議的軟件定義網絡架構解決了網絡資源固定分配帶來的資源利用率低問題,提供了靈活的按需動態網絡資源配置。另外,本發明通過對Openflow協議中的Meter表和端口隊列表相互協作實現復雜的QoS配置。本發明能夠極大的滿足用戶對QoS的動態需求,同時提高了網絡資源的利用率,適用于對實時性有特別需求的網絡應用中。
附圖說明
圖1為本發明的基于SDN的DDS框圖;
圖2為本發明的DDS的對象模型圖;
圖3為本發明的QoS保障機制示意圖;
圖4為本發明的控制器處理業務的流程;
圖5為本發明的QoS數據流處理過程。
具體實施方式
下面結合附圖及實施例對本發明做進一步的詳細說明。
本發明針對分布式實時應用提出了基于Openflow協議的實時數據分發系統和方法,該系統結合數據分發服務和軟件定義網絡框架,體系結構如圖1所示。該系統主要包括底層網絡設備、DDS接口API(又稱南向接口)、控制器、DDS代理、北向接口和應用服務。其中DDS代理、DDS接口API和底層網絡設備中的路由代理是DDS系統的組件,北向接口、控制器、南向接口、OF交換機和Openflow協議是軟件定義網絡的組件。該系統中的SDN支持Openflow 協議,通過流表實現數據的存儲轉發。終端用戶通過發布/訂閱傳輸模式按topic向數據分發系統進行注冊,注冊信息通過DDS代理統一保存到控制器中,當有APP請求時,由控制器根據保存的信息進行統一路由計算并進行流表下發,同時最優化網絡資源的利用率。
本發明中的數據分發服務定義了一種基于發布/訂閱模式的標準框架,提供全局數據存儲平臺,發布端用于寫數據,訂閱端用于讀數據。DDS提供一個完全解耦的靈活模塊化框架,該框架主要特點包括:采用匿名發布訂閱隱藏位置信息;允許多發布端和多訂閱端實現冗余;提供異步時間獨立的數據分布;提供基于消息的以數據為中心的連接管理;且兼容多種平臺。該系統的域成員對發布/訂閱模式中的數據按照QoS需求進行緩存,該DDS對象模型如圖2所示,主要包括信息主題、域成員和數據域。域成員按照主題將要發送的數據通過數據發送器傳送到發布者,并按照服務質量進行隊列緩存,然后經過DDS的數據域,然后由控制器進行相應的處理,根據Openflow計算出相應的路由路徑,然后通過DDS代理向路由代理下發路由信息,然后存儲到各個交換機的流表中。然后再將發布端的數據經過數據域傳送到訂閱者中。
基于Openflow協議的實時數據分發系統的工作流程服從Openflow協議,實時業務處理流程示意圖如圖3所示,其中DDS APP為數據分發服務的終端應用,即為發布端或訂閱端,圖中包括3個子網、3個網關和一個SDN控制器。具體流程如下:
步驟1:當一個終端應用發起發布數據請求后,該請求被傳輸到DDS服務系統中,接著傳到SDN控制器中按照topic進行存儲并返回發布成功消息;
步驟2:當有訂閱端發起訂閱請求后,該請求也同樣被DDS服務系統傳到控制器中,控制器按主題查找是否有需求的主題已經被注冊,如果沒有則給訂閱端發送訂閱失敗消息,如果有則返回訂閱成功消息;
步驟3:DDS系統分析訂閱端的QoS需求,并將該QoS信息傳送到SDN控制器,控制器進行存儲分析,調用相關的拓撲信息、QoS功能和負載均衡功 能計算出最優的路由路徑;
步驟4:控制器將最優的路由路徑信息轉化為各個相關設備的流表信息,然后下發到各個設備中,終端設備按照流量執行信息轉發,就實現了符合QoS需求的數據實時分發系統。
SDN控制器處理業務流程主要分三部分,包括監測、規劃和執行,處理流程框圖如圖4所示。控制器對網絡狀態進行實時監測,當收到網絡事件后,對網絡事件進行相應的處理,然后判斷網絡環境是否改變,如果未改變則繼續處理網絡事件,如果改變了則建立新的Openflow環境,判斷網絡資源是否是最優化的分配方案,如果是則將變化應用到網絡中,如果否則重新建立新的Openflow環境,重新判斷是否是最優化資源分配。當控制器收到DDS QoS事件后,首先建立DDS QoS約束,然后判斷網絡約束是否改變了,沒有改變則重新建立DDS QoS約束,直到發生改變后,建立新的Openflow環境,然后接著判斷網絡資源是否是最優的,最優則執行變化操作,否則重新建立Openflow環境,這與處理網絡事件的流程一致。
基于Openflow協議的控制器對數據流的QoS控制,主要通過Meter表機制實現,但是Meter表本身能夠實現的QoS功能不多,因此需要對Meter表進行擴展,并與queue支持的set-queue action相互結合實現復雜的QoS需求。數據流的處理流程示意圖如圖5所示。當DDS代理將事件傳送到控制器后,Flow_in_event事件首先進入QoS存儲模塊,對QoS指標進行存儲,便于后續資源分析模塊對整個網絡資源進行分析,然后針對QoS需求進行實時業務路由計算,獲得實時路由路徑,然后對網絡資源的利用率進行評估,如果當前資源利用率最優則將QoS配置轉發為流表下發到下層網絡設備,如果不是最優,則返回資源分析模塊重新計算實時路徑,直到獲得最優鏈路資源為止。