opendaylight架构如果
### OpenDaylight (ODL) 架构详解 #### 一、OpenDaylight简介与应用场景 OpenDaylight(ODL)作为一个开源项目,主要聚焦于软件定义网络(Software Defined Networking, SDN)以及网络功能虚拟化(Network Functions Virtualization, NFV)领域,其目的是为了推动下一代网络的发展。ODL提供了高度可扩展且灵活的SDN平台,支持多种南向协议(如OpenFlow),并且拥有丰富的北向接口(Northbound Interface, NBI)和南向接口(Southbound Interface, SBI)。本文将重点介绍ODL的核心组件——服务抽象层(Service Abstraction Layer, SAL)中的模型驱动服务抽象层(Model-Driven Service Abstraction Layer, MD-SAL)。 #### 二、面向对象及预备知识 本资料旨在帮助那些希望使用OpenDaylight作为SDN应用开发平台的技术人员,特别是那些具备一定Java编程基础并对SDN有所了解的人士。为了更好地理解和掌握MD-SAL的开发流程,建议读者至少具备以下几个方面的基础知识: - **对OpenDaylight项目的基本了解**:包括其架构特点和核心组件。 - **对Java编程语言的熟悉**:因为ODL的开发主要基于Java。 - **对Maven、XML、Git等工具的初步了解**:这些工具对于项目的构建和版本控制至关重要。 - **对YANG数据建模语言的理解**:这是MD-SAL中进行数据建模的关键工具。 - **对REST API和OSGi框架的了解**:前者用于北向接口的实现,后者则是ODL框架的基础。 #### 三、ODL Helium 版本的软件架构 ODL的软件架构设计得非常精妙,其中最为关键的是服务抽象层(SAL),它在控制器平台(Controller Platform)和协议插件(Protocol Plugin)之间起到了至关重要的桥梁作用。SAL可以进一步细分为两个子层: - **API-Driven SAL (AD-SAL)**:提供了一套基于API的服务抽象,便于开发者快速构建应用。 - **Model-Driven SAL (MD-SAL)**:采用了更为先进的模型驱动方法,允许开发者通过定义YANG模型来实现数据抽象,从而提高了代码的复用性和灵活性。 #### 四、SAL的关键概念 在深入探讨SAL之前,有必要先了解几个关键术语: - **Plugin**:是指通过SAL实现的功能模块,它们运行在ODL的OSGi框架之上,与控制器共享同一个JVM资源。 - **南向插件 (Southbound Plugin, SB Plugin)**:负责与物理或虚拟网络设备通信,提供管理、控制设备的服务接口。 - **北向插件 (Northbound Plugin, NB Plugin)**:利用SAL提供的北向服务API实现特定网络功能,并向上层应用提供统一的抽象服务和API。 - **抽象服务 (Abstraction Service)**:SAL提供的一系列服务,如拓扑服务(Topology Service)、流表服务(Flow Service)等,它们通过南向服务API和北向服务API对外暴露。 - **服务API**: - **南向服务API (Southbound Service API, SBAPI)**:通过南向插件实现管理、控制南向设备或服务。 - **北向服务API (Northbound Service API, NBAPI)**:向北向插件开放抽象服务,允许应用调用这些服务。 #### 五、AD-SAL概述 AD-SAL是SAL的一个子层,它的主要职责是定义抽象服务并吸收南向协议的差异,从而为北向插件提供统一的抽象服务和API。AD-SAL中的抽象服务是由南向和北向API实现的,北向插件可以通过调用AD-SAL的北向API来实现对南向插件的调用,进而操作南向插件所管理的设备和服务。 #### 六、MD-SAL的重要性 随着ODL版本的不断演进,MD-SAL的重要性日益凸显。在Helium版本中,虽然AD-SAL和MD-SAL共存,但未来版本如Lithium版中,大部分原本基于AD-SAL的应用将会迁移到MD-SAL。这主要是因为MD-SAL提供了一种更为强大的模型驱动方式,通过YANG模型来定义数据结构和行为,从而更好地支持复杂的网络功能开发。 #### 七、总结 OpenDaylight作为一个领先的SDN平台,其SAL层的设计体现了高度的灵活性和可扩展性。无论是AD-SAL还是MD-SAL,都在努力为开发者提供一个简单易用的开发环境,使他们能够专注于实现核心网络功能,而非纠结于底层细节。对于那些希望深入了解ODL架构并利用其强大能力的开发者来说,掌握SAL尤其是MD-SAL的相关知识将是十分必要的。
剩余127页未读,继续阅读
- 粉丝: 1
- 资源: 43
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助