liuzhenyu0 2013-12-19
控制器的业务支撑技术主要是包括北向接口为上层业务应用和资源管理系统提供灵活的网络资源抽象。通过北向接口,网络业务开发者可以软件编程的方式调用各种网络资源能力,同时网络资源管理系统可通过控制器的北向接口获得网络资源的工作状态,并对网络资源进行调度,实现资源统一交付,更好支撑云计算等新业务对网络资源的需求。
与南向接口已有opneflow为代表的标准协议不同,SDN在北向接口标准方面准在争议,这主要是因为北向接口直接为业务应用服务,其设计需密切联系业务应用需求,所以具有多样化的特征,很难统一。同时,北向接口设计的合理性和网络能力的开放性,会直接影响到SDN控制器技术和产品的市场前景,这也是SDN北向接口缺少业界普遍公认标准的原因,当前业界有近20种控制器,每种控制器都会对外提供北向接口用于上层应用开发和资源编排。
从设计目标上看,SDN控制器北向接口需要足够的开放性,使所有网络用户都能利用他开发网络应用,同时还需要为网络运营者提供足够的能力,使他们能够快速进行网络调整和定制。从技术实现上看,目前REST API是当前用户比较容易接受的方式,与SOAP等技术相比,它更容易上手,一套好的RESTAPI应具备以下特征:
可寻址性强:对应用而言,只要用户使用感兴趣的数据或者算法片段,都应该具有独立的地址已被标识方便用户访问。每一个资源都应该有一个唯一的URI标识,这样它才能被外界访问。
接口无状态:对每个请求而言,彼此之间是隔离的,指服务器不应该保存“应用状态”。
注重关联性:资源之间不应是孤立的,而是彼此联系的。应用能够根据用户发来的请求,自动在反馈的信息中尽可能的包含请求相关的全部资源链接。
接口要统一:对所有的资源进行的操作都采用一致的方式,包括统一资源编址和统一表述。
在REST API被便捷使用的同时,也存在一些问题:例如受控制器提供的接口能力的限制较大、在某些场合执行效率低等。为此,有一些控制器对外提供更加丰富的北向接口形式,如java接口等,供不同需求的网络应用开发人员使用。