"ODL-MD-SAL-APP架构入门"
OpenDaylight(ODL)是一个开源的软件定义网络(SDN)控制器平台,用于构建网络应用和服务。本入门资料主要针对SDN应用开发工程师,适合对OpenDaylight有一定了解,具备Java编程基础,并熟悉Maven、XML、Git、Yang、REST API以及OSGI技术的人员学习。教程旨在帮助开发者快速理解MD-SAL(Model-Driven Service Abstraction Layer)插件的开发流程,以便更专注于网络功能和逻辑的实现,而不是深入底层的开发细节。
ODL的架构中,Service Abstraction Layer(SAL)是一个关键组件,它作为控制器平台的核心模块,运行在OSGi框架之上。SAL负责提供一个抽象层,使上层应用与底层协议插件之间的交互得以简化。SAL分为两种类型:API-Driven SAL(AD-SAL)和Model-Driven SAL(MD-SAL)。
AD-SAL是基于API驱动的,而MD-SAL则是基于模型驱动的。在ODL的Helium版本中,两者并存,但随着版本的升级,如Lithium版,大部分原本使用AD-SAL的应用将逐步迁移到MD-SAL。这是因为MD-SAL提供了更好的模型抽象,能够更高效地处理数据交互、存储和API调用,使得网络管理更加灵活和模块化。
MD-SAL的主要特点包括:
1. **模型驱动**:MD-SAL使用YANG语言来定义网络资源的模型,这使得数据结构清晰,易于理解和操作。
2. **双向绑定**:MD-SAL实现了模型与数据的双向绑定,这意味着模型的更改会立即反映到数据中,反之亦然。
3. **数据存储**:MD-SAL支持多种数据存储机制,如内存数据库、RDF仓库等,可以适应不同的应用场景。
4. **API接口**:通过RESTful API,MD-SAL允许应用程序远程访问和更新网络状态,促进了与外部系统的集成。
5. **事件通知**:MD-SAL提供了一个事件订阅机制,当模型中的数据发生变化时,可以触发相应的事件,使得应用能够实时响应网络状态的变化。
6. **模块化设计**:MD-SAL基于OSGi框架,允许应用程序以模块化的方式开发和部署,提高了可扩展性和可维护性。
了解和掌握ODL-MD-SAL-APP架构对于开发高效的SDN应用至关重要。通过本入门资料,开发者可以学习如何利用MD-SAL创建、部署和管理网络服务,从而更好地利用OpenDaylight控制器实现网络的自动化和智能化。