1.1.1 ODL框架之争

在最初的ODL众多子项目中,Cisco主导的controller子项目和Big Switch主导的OSCP项目代表了SDN控制器框架设计的两种思路,二者属于竞争关系。

controller项目中,基于平台化的设计思路,提出了业务抽象层(Service Abstraction Layer,SAL)的概念,把控制器分为南向(SB)协议插件、北向(NB)业务/应用插件和SAL三层。通过SAL层,实现了多种南向协议插件与多样化的业务应用的解耦,这种设计借鉴了早期的SDN开源控制器Beacon的基于OSGi的模块化框架设计,符合ONF提出的典型的SDN三层架构,每一层都暴露大量的API供不同层次的业务应用进行调用,使系统具有很强的扩展性和灵活性。

OSCP项目中,主要采用了产品化的设计思路,南向协议绑定在OpenFlow上,提供集成度高的、功能比较完善的网络基础功能管理,但这将导致整个系统围绕着OpenFlow协议紧紧地耦合在一起,限制了控制器自身的扩展性与适用性。

当然,我们知道,Cisco的思路在ODL社区最终胜出,成为ODL的核心框架。而Big Switch与Cisco在ODL社区角力失败也导致了其在ODL社区运作了还不到3个月的时间就退出了。