OpenDaylight架构解析与MD-SAL应用开发入门

需积分: 12 20 下载量 143 浏览量 更新于2024-07-21 1 收藏 7.16MB PDF 举报
"OpenDaylight架构说明,中文文档,适合SDN应用开发工程师,介绍ODL Helium版的软件架构和Service Abstraction Layer (SAL)。" OpenDaylight(ODL)是一个开源软件定义网络(SDN)控制器平台,旨在促进网络的创新和自动化。它的架构设计允许开发者创建各种SDN应用程序,以满足不同场景的需求。本文档主要针对打算使用OpenDaylight作为SDN应用平台的开发人员,特别是那些已有一定Java编程基础、了解SDN概念、并对Maven、XML、Git、Yang、REST API和OSGI技术有一定认识的人。 OpenDaylight Helium版本的软件架构中,Service Abstraction Layer (SAL)是关键组件。SAL作为ODL Controller Platform的一部分,由运行在OSGi框架上的bundle实现。它的主要职责是提供一个抽象层,将底层协议插件与控制器平台的其他部分隔离开,简化了数据交互、存储和API调用的处理。 SAL分为两种类型:API-Driven SAL (AD-SAL) 和 Model-Driven SAL (MD-SAL)。在Helium版本中,两者并存,但随着项目的进展,越来越多的应用程序开始转向MD-SAL。MD-SAL基于模型驱动的思路,提供了更高级别的抽象,使得开发者能够更加专注于网络功能和逻辑的开发,而不是底层实现细节。 AD-SAL主要是通过API来驱动,它直接处理网络事件和操作,而MD-SAL则引入了数据建模的概念,允许开发者定义网络资源的结构,并自动处理这些资源的生命周期管理。在Lithium版本之后,ODL更倾向于使用MD-SAL,因为它提供了一种更为一致且可扩展的方式来处理网络数据和服务。 在开发基于OpenDaylight的应用时,理解SAL的工作原理至关重要。开发者需要学习如何利用MD-SAL的模型定义、数据存储和事件处理机制,以及如何通过REST API与控制器进行通信。此外,熟悉Yang模型语言也是必要的,因为Yang是用于定义网络数据模型的标准,与MD-SAL紧密关联。 OpenDaylight的架构设计旨在提供一个开放、灵活的SDN平台,通过SAL层实现了控制器与协议插件间的解耦,简化了开发者的工作。对于希望深入SDN领域的工程师来说,掌握OpenDaylight和SAL的工作机制是迈向成功的关键步骤。