控制器的業(yè)務支撐技術(shù)主要是包括北向接口為上層業(yè)務應用和資源管理系統(tǒng)提供靈活的網(wǎng)絡資源抽象。通過北向接口,網(wǎng)絡業(yè)務開發(fā)者可以軟件編程的方式調(diào)用各種網(wǎng)絡資源能力,同時網(wǎng)絡資源管理系統(tǒng)可通過控制器的北向接口獲得網(wǎng)絡資源的工作狀態(tài),并對網(wǎng)絡資源進行調(diào)度,實現(xiàn)資源統(tǒng)一交付,更好支撐云計算等新業(yè)務對網(wǎng)絡資源的需求。
與南向接口已有opneflow為代表的標準協(xié)議不同,SDN在北向接口標準方面準在爭議,這主要是因為北向接口直接為業(yè)務應用服務,其設計需密切聯(lián)系業(yè)務應用需求,所以具有多樣化的特征,很難統(tǒng)一。同時,北向接口設計的合理性和網(wǎng)絡能力的開放性,會直接影響到SDN控制器技術(shù)和產(chǎn)品的市場前景,這也是SDN北向接口缺少業(yè)界普遍公認標準的原因,當前業(yè)界有近20種控制器,每種控制器都會對外提供北向接口用于上層應用開發(fā)和資源編排。
從設計目標上看,SDN控制器北向接口需要足夠的開放性,使所有網(wǎng)絡用戶都能利用他開發(fā)網(wǎng)絡應用,同時還需要為網(wǎng)絡運營者提供足夠的能力,使他們能夠快速進行網(wǎng)絡調(diào)整和定制。從技術(shù)實現(xiàn)上看,目前REST API是當前用戶比較容易接受的方式,與SOAP等技術(shù)相比,它更容易上手,一套好的RESTAPI應具備以下特征:
可尋址性強:對應用而言,只要用戶使用感興趣的數(shù)據(jù)或者算法片段,都應該具有獨立的地址已被標識方便用戶訪問。每一個資源都應該有一個唯一的URI標識,這樣它才能被外界訪問。
接口無狀態(tài):對每個請求而言,彼此之間是隔離的,指服務器不應該保存“應用狀態(tài)”。
注重關(guān)聯(lián)性:資源之間不應是孤立的,而是彼此聯(lián)系的。應用能夠根據(jù)用戶發(fā)來的請求,自動在反饋的信息中盡可能的包含請求相關(guān)的全部資源鏈接。
接口要統(tǒng)一:對所有的資源進行的操作都采用一致的方式,包括統(tǒng)一資源編址和統(tǒng)一表述。
在REST API被便捷使用的同時,也存在一些問題:例如受控制器提供的接口能力的限制較大、在某些場合執(zhí)行效率低等。為此,有一些控制器對外提供更加豐富的北向接口形式,如java接口等,供不同需求的網(wǎng)絡應用開發(fā)人員使用。
以opendaylight為例,其在北向接口API的設計中,開放能力涵蓋網(wǎng)絡服務功能、網(wǎng)絡編排功能、服務管理等,還提供了開放服務網(wǎng)關(guān)協(xié)議框架和雙向的REST API兩種接口形式。其中開放服務網(wǎng)關(guān)協(xié)議框架主要用于與控制器處于同一地址空間的java應用開發(fā)(如應用開發(fā)可作為控制器提供服務的一部分),而REST API則主要用于開發(fā)遠程的基于web的應用,并為之提供了完備的接口描述、參數(shù)、響應設置、狀態(tài)編碼等信息。利用這些北向接口,業(yè)務應用可充分利用控制器調(diào)用網(wǎng)絡能力,同時通過應用中的算法驅(qū)動控制器對全網(wǎng)資源進行編排。
開源SDN控制器的出現(xiàn),特別是SDN網(wǎng)絡中北向接口的出現(xiàn)和成熟,給傳統(tǒng)的設備廠商帶來巨大壓力,這主要是因為北向接口為上層應用開發(fā)帶來巨大便利性,讓用戶可以靈活調(diào)配網(wǎng)絡資源。為了應對開放SDN帶來的競爭,一些傳統(tǒng)廠商如思科也推出了相應的設備編程能力,以供業(yè)務應用的直接調(diào)用,這也是北向接口的一種形式,例如思科推出的onePK,這類接口的優(yōu)勢在于能夠在現(xiàn)網(wǎng)的設備上直接部署,應用較為快捷,但他仍舊是一個封閉的方案,在應用時也受到設備廠商的較大約束。